linux-hardened/arch/powerpc/platforms
Alexey Kardashevskiy 2a9c4f40ab powerpc/powernv: Fix opal tracepoints with JUMP_LABEL=n
The recent commit to allow calling OPAL calls in real mode, commit
ab9bad0ead ("powerpc/powernv: Remove separate entry for OPAL real mode
calls"), introduced a bug when CONFIG_JUMP_LABEL=n.

The commit moved the "mfmsr r12" prior to the call to OPAL_BRANCH, but
we missed that OPAL_BRANCH clobbers r12 when jump labels are disabled.
This leads to us using the tracepoint refcount as the MSR value,
typically zero, and saving that into PACASAVEDMSR. When we return from
OPAL we use that value as the MSR value for rfid, meaning we switch to
32-bit BE real mode - hilarity ensues.

Fix it by using r11 in OPAL_BRANCH, which is not live at the time the
macro is used in OPAL_CALL.

Fixes: ab9bad0ead ("powerpc/powernv: Remove separate entry for OPAL real mode calls")
Suggested-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2017-03-04 21:48:49 +11:00
..
8xx powerpc/8xx: Implement support of hugepages 2016-12-09 22:49:07 -06:00
40x powerpc updates for 4.10 2016-12-16 09:26:42 -08:00
44x powerpc updates for 4.10 2016-12-16 09:26:42 -08:00
52xx powerpc: Remove all usages of NO_IRQ 2016-09-20 20:57:12 +10:00
82xx powerpc/e8248e: Select PHYLIB only if NETDEVICES is enabled 2016-09-24 23:59:47 -05:00
83xx powerpc/83xx/suspend: use builtin_platform_driver 2016-12-04 19:51:27 -06:00
85xx powerpc/corenet: add support for the kmcent2 board 2017-01-25 02:38:48 -06:00
86xx powerpc: Convert fsl_rstcr_restart to a reset handler 2016-09-25 02:38:50 -05:00
512x powerpc: Remove all usages of NO_IRQ 2016-09-20 20:57:12 +10:00
amigaone powerpc: Move 32-bit probe() machine to later in the boot process 2016-07-21 19:06:42 +10:00
cell powerpc updates for 4.11 part 2 2017-03-01 10:10:16 -08:00
chrp Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
embedded6xx powerpc: Add support for relative exception tables 2016-11-14 11:11:51 +11:00
maple powerpc: Move isa bridge definitions to separate include 2017-01-31 13:54:17 +11:00
pasemi treewide: Move dma_ops from struct dev_archdata into struct device 2017-01-24 12:23:35 -05:00
powermac i2c_powermac: shut up lockdep warning 2016-11-14 11:11:51 +11:00
powernv powerpc/powernv: Fix opal tracepoints with JUMP_LABEL=n 2017-03-04 21:48:49 +11:00
ps3 treewide: Move dma_ops from struct dev_archdata into struct device 2017-01-24 12:23:35 -05:00
pseries powerpc updates for 4.11 part 2 2017-03-01 10:10:16 -08:00
fsl_uli1575.c of/irq: Refactor interrupt-map parsing 2013-10-24 11:43:04 +01:00
Kconfig powerpc/pseries: Move ibmebus.c into platforms pseries 2016-11-18 23:02:18 +11:00
Kconfig.cputype powerpc/8xx: Perf events on PPC 8xx 2017-01-26 17:49:34 -06:00
Makefile powerpc: Remove platforms/wsp and associated pieces 2014-06-11 16:35:38 +10:00