Messages in this thread Patch in this message | | | From | Greg Kroah-Hartman <> | Subject | [PATCH] module.h: allow #define strings to work with MODULE_IMPORT_NS | Date | Sat, 8 Jan 2022 15:06:57 +0100 |
| |
The MODULE_IMPORT_NS() macro does not allow defined strings to work properly with it, so add a layer of indirection to allow this to happen.
Cc: Luis Chamberlain <mcgrof@kernel.org> Cc: Jessica Yu <jeyu@kernel.org> Cc: Matthias Maennich <maennich@google.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- Note, there is no in-kernel user of this, I wrote this to help deal with some module namespace issues that Android kernels were having where we wanted to put the namespace name in a build #define to make things easier over time when combined with the change at: https://lore.kernel.org/all/20220108140415.3360088-1-gregkh@linuxfoundation.org/
I can also see this be used in ways to make namespace names up "on the fly at build time" when combined with the above-referenced change to create a different namespace for every time the kernel is built to do a poor-man's symbol mangling to make life harder for out-of-tree modules. Not that I would ever suggest such a thing :)
include/linux/module.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/include/linux/module.h b/include/linux/module.h index c9f1200b2312..f4338235ed2c 100644 --- a/include/linux/module.h +++ b/include/linux/module.h @@ -290,7 +290,8 @@ extern typeof(name) __mod_##type##__##name##_device_table \ * files require multiple MODULE_FIRMWARE() specifiers */ #define MODULE_FIRMWARE(_firmware) MODULE_INFO(firmware, _firmware) -#define MODULE_IMPORT_NS(ns) MODULE_INFO(import_ns, #ns) +#define _MODULE_IMPORT_NS(ns) MODULE_INFO(import_ns, #ns) +#define MODULE_IMPORT_NS(ns) _MODULE_IMPORT_NS(ns) struct notifier_block; -- 2.34.1
| |