Thread (11 messages) 11 messages, 6 authors, 2017-11-25

Re: [PATCH v2] powerpc: fix boot on BOOK3S_32 with CONFIG_STRICT_KERNEL_RWX

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2017-11-22 11:55:14
Also in: lkml

Christophe Leroy [off-list ref] writes:
On powerpc32, patch_instruction() is called by apply_feature_fixups()
which is called from early_init()

There is the following note in front of early_init():
 * Note that the kernel may be running at an address which is different
 * from the address that it was linked at, so we must use RELOC/PTRRELOC
 * to access static data (including strings).  -- paulus

Therefore, slab_is_available() cannot be called yet, and
text_poke_area must be addressed with PTRRELOC()

Fixes: 37bc3e5fd764f ("powerpc/lib/code-patching: Use alternate map
for patch_instruction()")
I changed this to:

  Fixes: 95902e6c8864 ("powerpc/mm: Implement STRICT_KERNEL_RWX on PPC32")
  Cc: stable@vger.kernel.org # v4.14+

Because although the code was added in 37bc3e5fd764f, at that point it
couldn't be enabled on 32-bit, so there was no bug.

I'm not saying as the author of 95902e6c8864 that the bug is your fault,
but that is the first commit where the bug actually existed for someone
to hit.

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