Message ID | 20210129190038.1001626-1-atish.patra@wdc.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/3] RISC-V: Fix .init section permission update | expand |
On Fri, 29 Jan 2021 11:00:36 PST (-0800), Atish Patra wrote: > .init section permission should only updated to non-execute if > STRICT_KERNEL_RWX is enabled. Otherwise, this will lead to a kernel hang. > > Fixes: 19a00869028f ("RISC-V: Protect all kernel sections including init early") > > Suggested-by: Geert Uytterhoeven <geert@linux-m68k.org> > Reported-by: Geert Uytterhoeven <geert@linux-m68k.org> > Signed-off-by: Atish Patra <atish.patra@wdc.com> > --- > arch/riscv/kernel/setup.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/arch/riscv/kernel/setup.c b/arch/riscv/kernel/setup.c > index 3fa3f26dde85..c7c0655dd45b 100644 > --- a/arch/riscv/kernel/setup.c > +++ b/arch/riscv/kernel/setup.c > @@ -293,6 +293,8 @@ void free_initmem(void) > unsigned long init_begin = (unsigned long)__init_begin; > unsigned long init_end = (unsigned long)__init_end; > > - set_memory_rw_nx(init_begin, (init_end - init_begin) >> PAGE_SHIFT); > + if (IS_ENABLED(CONFIG_STRICT_KERNEL_RWX)) > + set_memory_rw_nx(init_begin, (init_end - init_begin) >> PAGE_SHIFT); > + > free_initmem_default(POISON_FREE_INITMEM); > } Thanks, this is on fixes.
diff --git a/arch/riscv/kernel/setup.c b/arch/riscv/kernel/setup.c index 3fa3f26dde85..c7c0655dd45b 100644 --- a/arch/riscv/kernel/setup.c +++ b/arch/riscv/kernel/setup.c @@ -293,6 +293,8 @@ void free_initmem(void) unsigned long init_begin = (unsigned long)__init_begin; unsigned long init_end = (unsigned long)__init_end; - set_memory_rw_nx(init_begin, (init_end - init_begin) >> PAGE_SHIFT); + if (IS_ENABLED(CONFIG_STRICT_KERNEL_RWX)) + set_memory_rw_nx(init_begin, (init_end - init_begin) >> PAGE_SHIFT); + free_initmem_default(POISON_FREE_INITMEM); }
.init section permission should only updated to non-execute if STRICT_KERNEL_RWX is enabled. Otherwise, this will lead to a kernel hang. Fixes: 19a00869028f ("RISC-V: Protect all kernel sections including init early") Suggested-by: Geert Uytterhoeven <geert@linux-m68k.org> Reported-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Atish Patra <atish.patra@wdc.com> --- arch/riscv/kernel/setup.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)