From: Christophe Leroy <christophe.leroy@csgroup.eu> To: Marek Szyprowski <m.szyprowski@samsung.com>, Chen-Yu Tsai <wenst@chromium.org>, Luis Chamberlain <mcgrof@kernel.org> Cc: Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, Arnd Bergmann <arnd@arndb.de>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>, "linux-modules@vger.kernel.org" <linux-modules@vger.kernel.org> Subject: Re: [PATCH 1/3] init: Declare rodata_enabled and mark_rodata_ro() at all time Date: Wed, 31 Jan 2024 11:58:00 +0000 [thread overview] Message-ID: <46627d92-976a-4126-b261-a4c6575e5a3e@csgroup.eu> (raw) In-Reply-To: <30ddedc9-0829-4a99-9cb1-39190937981c@samsung.com> Hi, Le 30/01/2024 à 18:48, Marek Szyprowski a écrit : > [Vous ne recevez pas souvent de courriers de m.szyprowski@samsung.com. Découvrez pourquoi ceci est important à https://aka.ms/LearnAboutSenderIdentification ] > > Dear All, > > On 30.01.2024 12:03, Christophe Leroy wrote: >> Le 30/01/2024 à 10:16, Chen-Yu Tsai a écrit : >>> [Vous ne recevez pas souvent de courriers de wenst@chromium.org. D?couvrez pourquoi ceci est important ? https://aka.ms/LearnAboutSenderIdentification ] >>> >>> On Mon, Jan 29, 2024 at 12:09:50PM -0800, Luis Chamberlain wrote: >>>> On Thu, Dec 21, 2023 at 10:02:46AM +0100, Christophe Leroy wrote: >>>>> Declaring rodata_enabled and mark_rodata_ro() at all time >>>>> helps removing related #ifdefery in C files. >>>>> >>>>> Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> >>>> Very nice cleanup, thanks!, applied and pushed >>>> >>>> Luis >>> On next-20240130, which has your modules-next branch, and thus this >>> series and the other "module: Use set_memory_rox()" series applied, >>> my kernel crashes in some very weird way. Reverting your branch >>> makes the crash go away. >>> >>> I thought I'd report it right away. Maybe you folks would know what's >>> happening here? This is on arm64. >> That's strange, it seems to bug in module_bug_finalize() which is >> _before_ calls to module_enable_ro() and such. >> >> Can you try to revert the 6 patches one by one to see which one >> introduces the problem ? >> >> In reality, only patch 677bfb9db8a3 really change things. Other ones are >> more on less only cleanup. > > I've also run into this issue with today's (20240130) linux-next on my > test farm. The issue is not fully reproducible, so it was a bit hard to > bisect it automatically. I've spent some time on manual testing and it > looks that reverting the following 2 commits on top of linux-next fixes > the problem: > > 65929884f868 ("modules: Remove #ifdef CONFIG_STRICT_MODULE_RWX around > rodata_enabled") > 677bfb9db8a3 ("module: Don't ignore errors from set_memory_XX()") > > This in fact means that commit 677bfb9db8a3 is responsible for this > regression, as 65929884f868 has to be reverted only because the latter > depends on it. Let me know what I can do to help debugging this issue. > Thanks for the bisect. I suspect you hit one of the errors and something goes wrong in the error path. To confirm this assumption, could you try with the following change on top of everything ? diff --git a/kernel/module/strict_rwx.c b/kernel/module/strict_rwx.c index a14df9655dbe..fdf8484154dd 100644 --- a/kernel/module/strict_rwx.c +++ b/kernel/module/strict_rwx.c @@ -15,9 +15,12 @@ static int module_set_memory(const struct module *mod, enum mod_mem_type type, int (*set_memory)(unsigned long start, int num_pages)) { const struct module_memory *mod_mem = &mod->mem[type]; + int err; set_vm_flush_reset_perms(mod_mem->base); - return set_memory((unsigned long)mod_mem->base, mod_mem->size >> PAGE_SHIFT); + err = set_memory((unsigned long)mod_mem->base, mod_mem->size >> PAGE_SHIFT); + WARN(err, "module_set_memory(%d, %px, %x) returned %d\n", type, mod_mem->base, mod_mem->size, err); + return err; } /* Thanks for your help Christophe
WARNING: multiple messages have this Message-ID (diff)
From: Christophe Leroy <christophe.leroy@csgroup.eu> To: Marek Szyprowski <m.szyprowski@samsung.com>, Chen-Yu Tsai <wenst@chromium.org>, Luis Chamberlain <mcgrof@kernel.org> Cc: Arnd Bergmann <arnd@arndb.de>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, Nicholas Piggin <npiggin@gmail.com>, "linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>, "linux-modules@vger.kernel.org" <linux-modules@vger.kernel.org> Subject: Re: [PATCH 1/3] init: Declare rodata_enabled and mark_rodata_ro() at all time Date: Wed, 31 Jan 2024 11:58:00 +0000 [thread overview] Message-ID: <46627d92-976a-4126-b261-a4c6575e5a3e@csgroup.eu> (raw) In-Reply-To: <30ddedc9-0829-4a99-9cb1-39190937981c@samsung.com> Hi, Le 30/01/2024 à 18:48, Marek Szyprowski a écrit : > [Vous ne recevez pas souvent de courriers de m.szyprowski@samsung.com. Découvrez pourquoi ceci est important à https://aka.ms/LearnAboutSenderIdentification ] > > Dear All, > > On 30.01.2024 12:03, Christophe Leroy wrote: >> Le 30/01/2024 à 10:16, Chen-Yu Tsai a écrit : >>> [Vous ne recevez pas souvent de courriers de wenst@chromium.org. D?couvrez pourquoi ceci est important ? https://aka.ms/LearnAboutSenderIdentification ] >>> >>> On Mon, Jan 29, 2024 at 12:09:50PM -0800, Luis Chamberlain wrote: >>>> On Thu, Dec 21, 2023 at 10:02:46AM +0100, Christophe Leroy wrote: >>>>> Declaring rodata_enabled and mark_rodata_ro() at all time >>>>> helps removing related #ifdefery in C files. >>>>> >>>>> Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> >>>> Very nice cleanup, thanks!, applied and pushed >>>> >>>> Luis >>> On next-20240130, which has your modules-next branch, and thus this >>> series and the other "module: Use set_memory_rox()" series applied, >>> my kernel crashes in some very weird way. Reverting your branch >>> makes the crash go away. >>> >>> I thought I'd report it right away. Maybe you folks would know what's >>> happening here? This is on arm64. >> That's strange, it seems to bug in module_bug_finalize() which is >> _before_ calls to module_enable_ro() and such. >> >> Can you try to revert the 6 patches one by one to see which one >> introduces the problem ? >> >> In reality, only patch 677bfb9db8a3 really change things. Other ones are >> more on less only cleanup. > > I've also run into this issue with today's (20240130) linux-next on my > test farm. The issue is not fully reproducible, so it was a bit hard to > bisect it automatically. I've spent some time on manual testing and it > looks that reverting the following 2 commits on top of linux-next fixes > the problem: > > 65929884f868 ("modules: Remove #ifdef CONFIG_STRICT_MODULE_RWX around > rodata_enabled") > 677bfb9db8a3 ("module: Don't ignore errors from set_memory_XX()") > > This in fact means that commit 677bfb9db8a3 is responsible for this > regression, as 65929884f868 has to be reverted only because the latter > depends on it. Let me know what I can do to help debugging this issue. > Thanks for the bisect. I suspect you hit one of the errors and something goes wrong in the error path. To confirm this assumption, could you try with the following change on top of everything ? diff --git a/kernel/module/strict_rwx.c b/kernel/module/strict_rwx.c index a14df9655dbe..fdf8484154dd 100644 --- a/kernel/module/strict_rwx.c +++ b/kernel/module/strict_rwx.c @@ -15,9 +15,12 @@ static int module_set_memory(const struct module *mod, enum mod_mem_type type, int (*set_memory)(unsigned long start, int num_pages)) { const struct module_memory *mod_mem = &mod->mem[type]; + int err; set_vm_flush_reset_perms(mod_mem->base); - return set_memory((unsigned long)mod_mem->base, mod_mem->size >> PAGE_SHIFT); + err = set_memory((unsigned long)mod_mem->base, mod_mem->size >> PAGE_SHIFT); + WARN(err, "module_set_memory(%d, %px, %x) returned %d\n", type, mod_mem->base, mod_mem->size, err); + return err; } /* Thanks for your help Christophe
next prev parent reply other threads:[~2024-01-31 11:58 UTC|newest] Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-12-21 9:02 [PATCH 1/3] init: Declare rodata_enabled and mark_rodata_ro() at all time Christophe Leroy 2023-12-21 9:02 ` Christophe Leroy 2023-12-21 9:02 ` [PATCH 2/3] modules: Remove #ifdef CONFIG_STRICT_MODULE_RWX around rodata_enabled Christophe Leroy 2023-12-21 9:02 ` Christophe Leroy 2023-12-21 9:02 ` [PATCH 3/3] powerpc: Simplify strict_kernel_rwx_enabled() Christophe Leroy 2023-12-21 9:02 ` Christophe Leroy 2023-12-21 12:16 ` [PATCH 1/3] init: Declare rodata_enabled and mark_rodata_ro() at all time Michael Ellerman 2023-12-21 12:16 ` Michael Ellerman 2023-12-22 5:35 ` Kees Cook 2023-12-22 5:35 ` Kees Cook 2023-12-22 18:23 ` Christophe Leroy 2023-12-22 18:23 ` Christophe Leroy 2024-01-29 20:09 ` Luis Chamberlain 2024-01-29 20:09 ` Luis Chamberlain 2024-01-30 9:16 ` Chen-Yu Tsai 2024-01-30 9:16 ` Chen-Yu Tsai 2024-01-30 11:03 ` Christophe Leroy 2024-01-30 11:03 ` Christophe Leroy [not found] ` <CGME20240130174812eucas1p166f62549457fd188fed6ed72b6b4b9cd@eucas1p1.samsung.com> 2024-01-30 17:48 ` Marek Szyprowski 2024-01-30 17:48 ` Marek Szyprowski 2024-01-30 20:27 ` Luis Chamberlain 2024-01-30 20:27 ` Luis Chamberlain 2024-01-31 6:53 ` Christophe Leroy 2024-01-31 6:53 ` Christophe Leroy 2024-01-31 22:16 ` Luis Chamberlain 2024-01-31 22:16 ` Luis Chamberlain 2024-01-31 11:58 ` Christophe Leroy [this message] 2024-01-31 11:58 ` Christophe Leroy 2024-01-31 15:17 ` Marek Szyprowski 2024-01-31 15:17 ` Marek Szyprowski 2024-01-31 20:07 ` Christophe Leroy 2024-01-31 20:07 ` Christophe Leroy 2024-01-31 20:07 ` Christophe Leroy 2024-01-31 22:10 ` Marek Szyprowski 2024-01-31 22:10 ` Marek Szyprowski 2024-01-31 22:10 ` Marek Szyprowski
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=46627d92-976a-4126-b261-a4c6575e5a3e@csgroup.eu \ --to=christophe.leroy@csgroup.eu \ --cc=arnd@arndb.de \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-modules@vger.kernel.org \ --cc=linuxppc-dev@lists.ozlabs.org \ --cc=m.szyprowski@samsung.com \ --cc=mcgrof@kernel.org \ --cc=mpe@ellerman.id.au \ --cc=npiggin@gmail.com \ --cc=wenst@chromium.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.