Skip to content

Commit

Permalink
powerpc/lib: fix book3s/32 boot failure due to code patching
Browse files Browse the repository at this point in the history
commit b45ba4a upstream.

Commit 51c3c62 ("powerpc: Avoid code patching freed init
sections") accesses 'init_mem_is_free' flag too early, before the
kernel is relocated. This provokes early boot failure (before the
console is active).

As it is not necessary to do this verification that early, this
patch moves the test into patch_instruction() instead of
__patch_instruction().

This modification also has the advantage of avoiding unnecessary
remappings.

Fixes: 51c3c62 ("powerpc: Avoid code patching freed init sections")
Cc: stable@vger.kernel.org # 4.13+
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Christophe Leroy authored and Greg Kroah-Hartman committed May 16, 2019
1 parent 95100d2 commit 5f3cf6b
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion arch/powerpc/lib/code-patching.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ int patch_instruction(unsigned int *addr, unsigned int instr)
int err;

/* Make sure we aren't patching a freed init section */
if (init_mem_is_free && is_init(addr)) {
if (*PTRRELOC(&init_mem_is_free) && is_init(addr)) {
pr_debug("Skipping init section patching addr: 0x%px\n", addr);
return 0;
}
Expand Down

0 comments on commit 5f3cf6b

Please sign in to comment.