Randy.Dunlap wrote: >> +#if defined(CONFIG_MODULES) && defined(THIS_MODULE) >> +#define KMSG_LOCATION_PREFIX THIS_MODULE ? THIS_MODULE->name : __FILE__ > > Can we get parens around the expression, please? Will do. > and does it make sense to test > #if defined(THIS_MODULE) > #define KMSG_LOCATION_PREFIX (THIS_MODULE ? ... Unfortunately, it does. > If that does make sense (the double testing of THIS_MODULE), > please explain why it does. We have the following cases: - compiling without module support, source file not including linux/module.h -> !defined(CONFIG_MODULES) && !defined(THIS_MODULE) -> compiling the expression (THIS_MODULE ? THIS_MODULE->name : __FILE__) fails with undefined symbol THIS_MODULE - compiling with module support, source file not including linux/module.h -> defined(CONFIG_MODULES) && !defined(THIS_MODULE) -> compiling the expression (THIS_MODULE ? THIS_MODULE->name : __FILE__) fails with undefined symbol THIS_MODULE - compiling without module support, source file including linux/module.h -> !defined(CONFIG_MODULES) && defined(THIS_MODULE) -> compiling the expression (THIS_MODULE ? THIS_MODULE->name : __FILE__) fails because THIS_MODULE is defined as a NULL pointer to struct module which in this case is an incomplete type (*sigh*) - compiling with module support, source file including linux/module.h, not compiling as a module -> defined(CONFIG_MODULES) && defined(THIS_MODULE) && THIS_MODULE == ((struct module *)0) -> compiling the expression (THIS_MODULE ? THIS_MODULE->name : __FILE__) succeeds (hooray), but THIS_MODULE is a NULL pointer, though this time the type it points to is at least completely defined - compiling with module support, source file including linux/module.h, compiling as a module -> defined(CONFIG_MODULES) && defined(THIS_MODULE) && THIS_MODULE == &__this_module -> compiling the expression (THIS_MODULE ? THIS_MODULE->name : __FILE__) succeeds and THIS_MODULE can actualy be dereferenced I would like the code to compile and run successfully in all these cases. -- Tilman Schmidt E-Mail: [email protected] Bonn, Germany Diese Nachricht besteht zu 100% aus wiederverwerteten Bits. Ungeöffnet mindestens haltbar bis: (siehe Rückseite)
Attachment:
signature.asc
Description: OpenPGP digital signature
- References:
- [PATCH] reduce syslog clutter (take 2)
- From: Tilman Schmidt <[email protected]>
- Re: [PATCH] reduce syslog clutter (take 2)
- From: "Randy.Dunlap" <[email protected]>
- [PATCH] reduce syslog clutter (take 2)
- Prev by Date: Re: Genius VideoWonder DVB-T PCI support
- Next by Date: [Patch]Tiny bug fix of memory hotadd (pgdat->node_present_pages are not correct).
- Previous by thread: Re: [PATCH] reduce syslog clutter (take 2)
- Next by thread: Re: [PATCH] reduce syslog clutter (take 2)
- Index(es):