mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 03:15:31 +09:00
powerpc/lib: fix book3s/32 boot failure due to code patching
commitb45ba4a51cupstream. Commit51c3c62b58("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:51c3c62b58("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>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
71e29a15b4
commit
48a5c81f3f
@@ -23,7 +23,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 && init_section_contains(addr, 4)) {
|
||||
if (*PTRRELOC(&init_mem_is_free) && init_section_contains(addr, 4)) {
|
||||
pr_debug("Skipping init section patching addr: 0x%px\n", addr);
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user