On 08/03/2022 15:40, Joel Sherrill wrote:
On Tue, Mar 8, 2022 at 8:31 AM Sebastian Huber <[email protected] <mailto:[email protected]>> wrote:On 08/03/2022 15:23, Joel Sherrill wrote: > > > On Tue, Mar 8, 2022 at 12:45 AM Sebastian Huber > <[email protected] <mailto:[email protected]> > <mailto:[email protected] <mailto:[email protected]>>> wrote: > > On 07/03/2022 19:19, Joel Sherrill wrote: > > > > > > On Mon, Mar 7, 2022 at 11:54 AM Sebastian Huber > > <[email protected] <mailto:[email protected]> > <mailto:[email protected] <mailto:[email protected]>> > > <mailto:[email protected] <mailto:[email protected]> > <mailto:[email protected] <mailto:[email protected]>>>> wrote: > > > > On 07/03/2022 17:48, Joel Sherrill wrote: > > > This appears to be because > > > rtems_configuration_get_user_multiprocessing_table() > always returns a > > > non-NULL value when RTEMS_MULTIPROCESSING is defined. This > must > > be a change > > > versus previous behavior. > > > > > > Ryan and I noticed that the specific cases cited here > appeared to be > > > wrapped in ifdef RTEMS_MULTIPROCESSING so didn't need to worry > > about it. > > > But something has changed that impacts public facing behavior. > > > > I think this is the related ticket: > > > > https://devel.rtems.org/ticket/3735 <https://devel.rtems.org/ticket/3735> > <https://devel.rtems.org/ticket/3735 <https://devel.rtems.org/ticket/3735>> > > <https://devel.rtems.org/ticket/3735 <https://devel.rtems.org/ticket/3735> > <https://devel.rtems.org/ticket/3735 <https://devel.rtems.org/ticket/3735>>> > > > > > > OK. But apparently this was used to tell the difference between a > > single node system in MP configuration and a node within an > > MP configuration. My grep shows some uses are really dereferencing > > the table but others like the one in amba.h:153 to define the clock > > index looks wrong. THere is similar code in leon.h: > > > > #if defined(RTEMS_MULTIPROCESSING) > > #define LEON3_CLOCK_INDEX \ > > (rtems_configuration_get_user_multiprocessing_table() ? > > LEON3_Cpu_Index : 0) > > > > #else > > #define LEON3_CLOCK_INDEX 0 > > #endif > > > > That's the type of pattern that needs addressing. That test is > > asking in multiprocessing is configured in the application not > > in the build. > > The rtems_configuration_get_user_multiprocessing_table() ? X : Y > expressions can be simplified to X. > > > That does not preserve the semantics of the original. In the original > implementation, it could return NULL for an application configured > to be a single processor with no distributed multiprocessing in use. > > The change gets rid of the warning but doesn't 'retain the intent. If you think the original behaviour of rtems_configuration_get_user_multiprocessing_table() is important, then it should be documented and tested. The original behavior can't be re-implemented. When you made changes so there was always an MPCI Table, it fundamentally broke the assumption that one might not be present when MP is enabled.
We could change rtems_configuration_get_user_multiprocessing_table() to return NULL if CONFIGURE_MP_APPLICATION is not defined.
-- embedded brains GmbH Herr Sebastian HUBER Dornierstr. 4 82178 Puchheim Germany email: [email protected] phone: +49-89-18 94 741 - 16 fax: +49-89-18 94 741 - 08 Registergericht: Amtsgericht München Registernummer: HRB 157899 Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler Unsere Datenschutzerklärung finden Sie hier: https://embedded-brains.de/datenschutzerklaerung/ _______________________________________________ devel mailing list [email protected] http://lists.rtems.org/mailman/listinfo/devel
