linux/arch/powerpc
Paul Mackerras 45f62159f3 powerpc: Wrap register number correctly for string load/store instructions
Michael Ellerman reported that emulate_loadstore() was trying to
access element 32 of regs->gpr[], which doesn't exist, when
emulating a string store instruction.  This is because the string
load and store instructions (lswi, lswx, stswi and stswx) are
defined to wrap around from register 31 to register 0 if the number
of bytes being loaded or stored is sufficiently large.  This wrapping
was not implemented in the emulation code.  To fix it, we mask the
register number after incrementing it.

Reported-by: Michael Ellerman <mpe@ellerman.id.au>
Fixes: c9f6f4ed95 ("powerpc: Implement emulation of string loads and stores")
Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2017-09-01 16:42:44 +10:00
..
boot powerpc: conditionally compile platform-specific serial drivers 2017-08-31 14:26:48 +10:00
configs powerpc/configs: Enable THP and 64K for ppc64(le)_defconfig 2017-08-31 14:26:47 +10:00
crypto Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2017-05-02 15:53:46 -07:00
include powerpc: Emulate load/store floating point as integer word instructions 2017-09-01 16:42:44 +10:00
kernel powerpc: Use instruction emulation infrastructure to handle alignment faults 2017-09-01 16:42:43 +10:00
kvm Merge branch 'topic/ppc-kvm' into next 2017-08-29 21:26:30 +10:00
lib powerpc: Wrap register number correctly for string load/store instructions 2017-09-01 16:42:44 +10:00
math-emu Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
mm powerpc/mm/radix: Prettify mapped memory range print out 2017-08-31 14:26:42 +10:00
net powerpc/bpf: Use memset32() to pre-fill traps in BPF page(s) 2017-08-17 23:04:47 +10:00
oprofile ktime: Cleanup ktime_set() usage 2016-12-25 17:21:22 +01:00
perf Merge branch 'topic/ppc-kvm' into next 2017-08-17 23:14:17 +10:00
platforms powerpc/pseries: Don't attempt to acquire drc during memory hot add for assigned lmbs 2017-08-31 20:02:23 +10:00
purgatory powerpc/asm: Convert .llong directives to .8byte 2017-08-31 14:26:47 +10:00
sysdev powerpc/xive: Fix the size of the cpumask used in xive_find_target_in_mask() 2017-08-24 15:20:18 +10:00
tools powerpc/64: Tool to check head sections location sanity 2017-05-30 14:59:51 +10:00
xmon powerpc/xmon: Add ISA v3.0 SPRs to SPR dump 2017-08-31 14:26:45 +10:00
Kconfig powerpc: Use instruction emulation infrastructure to handle alignment faults 2017-09-01 16:42:43 +10:00
Kconfig.debug powerpc/xmon: Enable disassembly files (compilation changes) 2017-02-15 20:02:42 +11:00
Makefile Merge branch 'fixes' into next 2017-08-23 22:20:10 +10:00
Makefile.postlink powerpc/64: Tool to check head sections location sanity 2017-05-30 14:59:51 +10:00