diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2016-08-10 09:27:34 +0200 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2016-08-10 11:41:58 +0200 |
commit | 97f6e0cc35026a2a09147a6da636d901525e1969 (patch) | |
tree | e2662c33b890c9715a6af4ab8f52cb81db00bf4b /arch/powerpc/include/asm/feature-fixups.h | |
parent | powerpc: Update obsolete comment in setup_32.c about early_init() (diff) | |
download | linux-97f6e0cc35026a2a09147a6da636d901525e1969.tar.xz linux-97f6e0cc35026a2a09147a6da636d901525e1969.zip |
powerpc/32: Fix crash during static key init
We cannot do those initializations from apply_feature_fixups() as
this function runs in a very restricted environment on 32-bit where
the kernel isn't running at its linked address and the PTRRELOC()
macro must be used for any global accesss.
Instead, split them into a separtate steup_feature_keys() function
which is called in a more suitable spot on ppc32.
Fixes: 309b315b6ec6 ("powerpc: Call jump_label_init() in apply_feature_fixups()")
Reported-and-tested-by: Christian Kujau <lists@nerdbynature.de>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'arch/powerpc/include/asm/feature-fixups.h')
-rw-r--r-- | arch/powerpc/include/asm/feature-fixups.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/feature-fixups.h b/arch/powerpc/include/asm/feature-fixups.h index 57fec8ac7b92..ddf54f5bbdd1 100644 --- a/arch/powerpc/include/asm/feature-fixups.h +++ b/arch/powerpc/include/asm/feature-fixups.h @@ -186,6 +186,7 @@ label##3: \ #ifndef __ASSEMBLY__ void apply_feature_fixups(void); +void setup_feature_keys(void); #endif #endif /* __ASM_POWERPC_FEATURE_FIXUPS_H */ |