remarkable-linux/arch
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
..
alpha mm: add new mmgrab() helper 2017-02-27 18:43:48 -08:00
arc mm: add new mmget() helper 2017-02-27 18:43:48 -08:00
arm Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm 2017-02-28 11:50:53 -08:00
arm64 mm: add new mmgrab() helper 2017-02-27 18:43:48 -08:00
avr32 kprobes: move kprobe declarations to asm-generic/kprobes.h 2017-02-27 18:43:45 -08:00
blackfin mm: add new mmget() helper 2017-02-27 18:43:48 -08:00
c6x kprobes: move kprobe declarations to asm-generic/kprobes.h 2017-02-27 18:43:45 -08:00
cris kprobes: move kprobe declarations to asm-generic/kprobes.h 2017-02-27 18:43:45 -08:00
frv mm: add new mmget() helper 2017-02-27 18:43:48 -08:00
h8300 kprobes: move kprobe declarations to asm-generic/kprobes.h 2017-02-27 18:43:45 -08:00
hexagon mm: add new mmgrab() helper 2017-02-27 18:43:48 -08:00
ia64 mm: add new mmgrab() helper 2017-02-27 18:43:48 -08:00
m32r mm: add new mmgrab() helper 2017-02-27 18:43:48 -08:00
m68k Merge branch 'akpm' (patches from Andrew) 2017-02-27 23:09:29 -08:00
metag mm: add new mmget() helper 2017-02-27 18:43:48 -08:00
microblaze kprobes: move kprobe declarations to asm-generic/kprobes.h 2017-02-27 18:43:45 -08:00
mips mm: add new mmgrab() helper 2017-02-27 18:43:48 -08:00
mn10300 mm: add new mmgrab() helper 2017-02-27 18:43:48 -08:00
nios2 kprobes: move kprobe declarations to asm-generic/kprobes.h 2017-02-27 18:43:45 -08:00
openrisc scripts/spelling.txt: add "efective" pattern and fix typo instances 2017-02-27 18:43:46 -08:00
parisc mm: add new mmgrab() helper 2017-02-27 18:43:48 -08:00
powerpc powerpc/powernv: Fix opal tracepoints with JUMP_LABEL=n 2017-03-04 21:48:49 +11:00
s390 Merge branch 'akpm' (patches from Andrew) 2017-02-27 23:09:29 -08:00
score mm: add new mmgrab() helper 2017-02-27 18:43:48 -08:00
sh mm: add new mmget() helper 2017-02-27 18:43:48 -08:00
sparc mm: add new mmgrab() helper 2017-02-27 18:43:48 -08:00
tile mm: add new mmgrab() helper 2017-02-27 18:43:48 -08:00
um kprobes: move kprobe declarations to asm-generic/kprobes.h 2017-02-27 18:43:45 -08:00
unicore32 kprobes: move kprobe declarations to asm-generic/kprobes.h 2017-02-27 18:43:45 -08:00
x86 Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-02-28 11:46:00 -08:00
xtensa mm: add new mmget() helper 2017-02-27 18:43:48 -08:00
.gitignore
Kconfig scripts/spelling.txt: add "an user" pattern and fix typo instances 2017-02-27 18:43:46 -08:00