| From 8cea2be6d3015420c07d545c2fa062cc059b732b Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 23 Mar 2022 16:06:14 -0700 |
| Subject: init/main.c: return 1 from handled __setup() functions |
| |
| From: Randy Dunlap <rdunlap@infradead.org> |
| |
| [ Upstream commit f9a40b0890658330c83c95511f9d6b396610defc ] |
| |
| initcall_blacklist() should return 1 to indicate that it handled its |
| cmdline arguments. |
| |
| set_debug_rodata() should return 1 to indicate that it handled its |
| cmdline arguments. Print a warning if the option string is invalid. |
| |
| This prevents these strings from being added to the 'init' program's |
| environment as they are not init arguments/parameters. |
| |
| Link: https://lkml.kernel.org/r/20220221050901.23985-1-rdunlap@infradead.org |
| Signed-off-by: Randy Dunlap <rdunlap@infradead.org> |
| Reported-by: Igor Zhbanov <i.zhbanov@omprussia.ru> |
| Cc: Ingo Molnar <mingo@kernel.org> |
| Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| init/main.c | 6 ++++-- |
| 1 file changed, 4 insertions(+), 2 deletions(-) |
| |
| diff --git a/init/main.c b/init/main.c |
| index cb68bc48a682..792a8d9cc560 100644 |
| --- a/init/main.c |
| +++ b/init/main.c |
| @@ -1189,7 +1189,7 @@ static int __init initcall_blacklist(char *str) |
| } |
| } while (str_entry); |
| |
| - return 0; |
| + return 1; |
| } |
| |
| static bool __init_or_module initcall_blacklisted(initcall_t fn) |
| @@ -1451,7 +1451,9 @@ static noinline void __init kernel_init_freeable(void); |
| bool rodata_enabled __ro_after_init = true; |
| static int __init set_debug_rodata(char *str) |
| { |
| - return strtobool(str, &rodata_enabled); |
| + if (strtobool(str, &rodata_enabled)) |
| + pr_warn("Invalid option string for rodata: '%s'\n", str); |
| + return 1; |
| } |
| __setup("rodata=", set_debug_rodata); |
| #endif |
| -- |
| 2.35.1 |
| |