linux/arch/powerpc/lib
Oliver O'Halloran 6670783606 powerpc/sstep: Fix emulation fall-through
There is a switch fallthough in instr_analyze() which can cause an
invalid instruction to be emulated as a different, valid, instruction.
The rld* (opcode 30) case extracts a sub-opcode from bits 3:1 of the
instruction word. However, the only valid values of this field are 001
and 000. These cases are correctly handled, but the others are not which
causes execution to fall through into case 31.

Breaking out of the switch causes the instruction to be marked as
unknown and allows the caller to deal with the invalid instruction in a
manner consistent with other invalid instructions.

Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2016-05-11 21:54:08 +10:00
..
Makefile Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/scottwood/linux into next 2016-03-14 20:05:14 +11:00
alloc.c powerpc: Replace mem_init_done with slab_is_available() 2015-04-10 20:02:48 +10:00
checksum_32.S powerpc: optimise csum_partial() call when len is constant 2016-03-09 10:44:18 -06:00
checksum_64.S powerpc: optimise csum_partial() call when len is constant 2016-03-09 10:44:18 -06:00
checksum_wrappers.c powerpc32: checksum_wrappers_64 becomes checksum_wrappers 2016-03-04 21:47:47 -06:00
code-patching.c
copy_32.S powerpc: Make generic_memcpy() private to copy_32.S 2016-04-11 20:30:41 +10:00
copypage_64.S
copypage_power7.S powerpc: Change vrX register defines to vX to match gcc and glibc 2015-03-16 18:32:11 +11:00
copyuser_64.S
copyuser_power7.S powerpc: Change vrX register defines to vX to match gcc and glibc 2015-03-16 18:32:11 +11:00
crtsavres.S powerpc: Change vrX register defines to vX to match gcc and glibc 2015-03-16 18:32:11 +11:00
div64.S
feature-fixups-test.S
feature-fixups.c
hweight_64.S
ldstfp.S powerpc: Change vsrX register defines to vsX to match gcc and glibc 2015-03-16 18:32:11 +11:00
locks.c cpufreq/ppc: Add missing #include <asm/smp.h> 2015-03-25 16:53:28 +11:00
mem_64.S
memcmp_64.S
memcpy_64.S
memcpy_power7.S powerpc: Change vrX register defines to vX to match gcc and glibc 2015-03-16 18:32:11 +11:00
ppc_ksyms.c powerpc: optimise csum_partial() call when len is constant 2016-03-09 10:44:18 -06:00
rheap.c powerpc: Delete unnecessary checks before kfree() 2015-03-16 18:50:14 +11:00
sstep.c powerpc/sstep: Fix emulation fall-through 2016-05-11 21:54:08 +10:00
string.S
string_64.S
usercopy_64.c
vmx-helper.c powerpc: Create disable_kernel_{fp,altivec,vsx,spe}() 2015-12-01 13:52:25 +11:00
xor_vmx.c powerpc: rework sparse for lib/xor_vmx.c 2016-04-27 09:33:37 +10:00