[PATCH] module: fix clang CFI with MODULE_UNLOAD=n

Subsystems: the rest

STALE1824d

5 messages, 5 authors, 2021-09-28 · open the first message on its own page

[PATCH] module: fix clang CFI with MODULE_UNLOAD=n

From: Arnd Bergmann <arnd@kernel.org>
Date: 2021-09-27 12:16:24

From: Arnd Bergmann <arnd@arndb.de>

When CONFIG_MODULE_UNLOAD is disabled, the module->exit member
is not defined, causing a build failure:

kernel/module.c:4493:8: error: no member named 'exit' in 'struct module'
                mod->exit = *exit;

add an #ifdef block around this.

Fixes: cf68fffb66d6 ("add support for Clang CFI")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 kernel/module.c | 2 ++
 1 file changed, 2 insertions(+)
diff --git a/kernel/module.c b/kernel/module.c
index 40ec9a030eec..5c26a76e800b 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -4489,8 +4489,10 @@ static void cfi_init(struct module *mod)
 	/* Fix init/exit functions to point to the CFI jump table */
 	if (init)
 		mod->init = *init;
+#ifdef CONFIG_MODULE_UNLOAD
 	if (exit)
 		mod->exit = *exit;
+#endif
 
 	cfi_module_add(mod, module_addr_min);
 #endif
-- 
2.29.2

Re: [PATCH] module: fix clang CFI with MODULE_UNLOAD=n

From: Miroslav Benes <mbenes@suse.cz>
Date: 2021-09-27 13:34:27

On Mon, 27 Sep 2021, Arnd Bergmann wrote:
From: Arnd Bergmann <arnd@arndb.de>

When CONFIG_MODULE_UNLOAD is disabled, the module->exit member
is not defined, causing a build failure:

kernel/module.c:4493:8: error: no member named 'exit' in 'struct module'
                mod->exit = *exit;

add an #ifdef block around this.

Fixes: cf68fffb66d6 ("add support for Clang CFI")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Miroslav Benes <mbenes@suse.cz>

M

Re: [PATCH] module: fix clang CFI with MODULE_UNLOAD=n

From: Sami Tolvanen <samitolvanen@google.com>
Date: 2021-09-27 15:27:28

Hi Arnd,

On Mon, Sep 27, 2021 at 5:15 AM Arnd Bergmann [off-list ref] wrote:
quoted hunk
From: Arnd Bergmann <arnd@arndb.de>

When CONFIG_MODULE_UNLOAD is disabled, the module->exit member
is not defined, causing a build failure:

kernel/module.c:4493:8: error: no member named 'exit' in 'struct module'
                mod->exit = *exit;

add an #ifdef block around this.

Fixes: cf68fffb66d6 ("add support for Clang CFI")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 kernel/module.c | 2 ++
 1 file changed, 2 insertions(+)
diff --git a/kernel/module.c b/kernel/module.c
index 40ec9a030eec..5c26a76e800b 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -4489,8 +4489,10 @@ static void cfi_init(struct module *mod)
        /* Fix init/exit functions to point to the CFI jump table */
        if (init)
                mod->init = *init;
+#ifdef CONFIG_MODULE_UNLOAD
        if (exit)
                mod->exit = *exit;
+#endif

        cfi_module_add(mod, module_addr_min);
 #endif
Thanks for the fix!

Reviewed-by: Sami Tolvanen <samitolvanen@google.com>

Sami

Re: [PATCH] module: fix clang CFI with MODULE_UNLOAD=n

From: Kees Cook <hidden>
Date: 2021-09-27 16:21:58

On Mon, Sep 27, 2021 at 02:15:10PM +0200, Arnd Bergmann wrote:
From: Arnd Bergmann <arnd@arndb.de>

When CONFIG_MODULE_UNLOAD is disabled, the module->exit member
is not defined, causing a build failure:

kernel/module.c:4493:8: error: no member named 'exit' in 'struct module'
                mod->exit = *exit;

add an #ifdef block around this.

Fixes: cf68fffb66d6 ("add support for Clang CFI")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Nice catch; thanks! (Not a lot of config build that way it seems...)

Acked-by: Kees Cook <redacted>

-- 
Kees Cook

Re: [PATCH] module: fix clang CFI with MODULE_UNLOAD=n

From: Jessica Yu <jeyu@kernel.org>
Date: 2021-09-28 11:01:46

+++ Arnd Bergmann [27/09/21 14:15 +0200]:
From: Arnd Bergmann <arnd@arndb.de>

When CONFIG_MODULE_UNLOAD is disabled, the module->exit member
is not defined, causing a build failure:

kernel/module.c:4493:8: error: no member named 'exit' in 'struct module'
               mod->exit = *exit;

add an #ifdef block around this.

Fixes: cf68fffb66d6 ("add support for Clang CFI")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Applied, thanks everyone!

Jessica
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help