linux/arch/mips
James Hogan b4caa5be15 KVM: MIPS: Make ERET handle ERL before EXL
[ Upstream commit ede5f3e7b5 ]

The ERET instruction to return from exception is used for returning from
exception level (Status.EXL) and error level (Status.ERL). If both bits
are set however we should be returning from ERL first, as ERL can
interrupt EXL, for example when an NMI is taken. KVM however checks EXL
first.

Fix the order of the checks to match the pseudocode in the instruction
set manual.

Fixes: e685c689f3 ("KVM/MIPS32: Privileged instruction/target branch emulation.")
Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: "Radim Krčmář <rkrcmar@redhat.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: linux-mips@linux-mips.org
Cc: kvm@vger.kernel.org
Cc: <stable@vger.kernel.org> # 3.10.x-
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
History 2016-11-23 23:02:28 -05:00
..
alchemy MIPS: Alchemy: Fix cpu clock calculation 2015-03-06 14:52:54 -08:00
ar7 MIPS: Restore init.h usage to arch/mips/ar7/time.c 2014-03-26 23:09:23 +01:00
ath79 MIPS: ath79: make bootconsole wait for both THRE and TEMT 2016-06-03 11:30:32 -04:00
bcm47xx MIPS: BCM47XX: Fix detecting Microsoft MN-700 & Asus WL500G 2015-05-17 19:12:35 -04:00
bcm63xx MIPS: BCM63xx: Move bcm63xx_gpio_init() to bcm63xx_register_devices(). 2015-05-17 19:12:32 -04:00
boot MIPS: ralink: Move device-trees to arch/mips/boot/dts/ 2014-09-22 13:35:50 +02:00
cavium-octeon MIPS: OCTEON: dma-octeon: fix OHCI USB config check 2015-05-17 19:12:33 -04:00
cobalt MIPS: Cobalt: Move to 8250/16550 serial early printk driver 2013-10-29 21:24:38 +01:00
configs Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2014-10-18 14:24:36 -07:00
dec Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2014-06-09 18:10:34 -07:00
emma MIPS: Remove panic_timeout settings 2013-11-26 12:12:27 +01:00
fw MIPS: DEC/SNI: O32 wrapper stack switching fixes 2014-05-13 00:29:35 +02:00
include mips: copy_from_user() must zero the destination on access_ok() failure 2016-10-05 22:40:20 -04:00
jazz Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2013-03-02 07:44:16 -08:00
jz4740 This is the bulk of GPIO changes for the v3.17 development 2014-08-08 18:00:35 -07:00
kernel KEYS: 64-bit MIPS needs to use compat_sys_keyctl for 32-bit userspace 2016-08-22 12:23:21 -04:00
kvm KVM: MIPS: Make ERET handle ERL before EXL 2016-11-23 23:02:28 -05:00
lantiq Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2014-10-18 14:24:36 -07:00
lasat MIPS: Lasat: Add missing CONFIG_PROC_FS dependency to PICVUE_PROC 2014-10-21 17:35:44 +02:00
lib MIPS: lib: memcpy: Restore NOP on delay slot before returning to caller 2014-11-19 18:22:08 +01:00
loongson MIPS: Loongson-3: Add IRQF_NO_SUSPEND to Cascade irqaction 2015-05-17 19:11:51 -04:00
loongson1 MIPS: Disable MIPS16/microMIPS crap for platforms not supporting these ASEs. 2014-05-23 15:12:37 +02:00
math-emu MIPS: math-emu: Fix jalr emulation when rd == $0 2016-06-06 19:11:04 -04:00
mm MIPS: dma-default: Fix 32-bit fall back to GFP_DMA 2015-10-27 22:14:10 -04:00
mti-malta MIPS: Malta: Don't reinitialise RTC 2015-08-19 13:13:56 -04:00
mti-sead3 MIPS: SEAD3: Fix LED device registration. 2014-11-24 07:44:03 +01:00
net net: filter: make JITs zero A for SKF_AD_ALU_XOR_X 2016-02-15 15:42:43 -05:00
netlogic MIPS: Netlogic: Fix for SATA PHY init 2015-05-17 19:12:33 -04:00
oprofile MIPS: oprofile: Fix backtrace on 64-bit kernel 2014-11-19 18:22:07 +01:00
paravirt mips: Update the email address of Geert Uytterhoeven 2014-06-02 16:34:41 +02:00
pci MIPS: OCTEON: fix PCI interrupt mapping for D-Link DSR-1000N 2015-05-17 19:12:33 -04:00
pmcs-msp71xx MIPS: MSP71xx: Fix build error 2014-10-24 02:37:18 +02:00
pnx833x MIPS: PNX833x: Remove checks for CONFIG_I2C_PNX0105 2014-05-23 15:12:39 +02:00
power MIPS: Hibernate: flush TLB entries earlier 2015-05-17 19:11:52 -04:00
ralink MIPS: ralink: add missing symbol for RALINK_ILL_ACC 2015-05-17 19:12:34 -04:00
rb532 Merge branch '3.16-fixes' into mips-for-linux-next 2014-08-02 00:07:03 +02:00
sgi-ip22 MIPS: IP22: Add missing put_device call 2014-07-30 13:27:51 +02:00
sgi-ip27 MIPS: IP27: Fix __node_distances undefined error 2014-11-19 18:22:07 +01:00
sgi-ip32 MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
sibyte MIPS: Sibyte: Include the swarm subdir to the sb1250 LittleSur builds 2014-10-23 13:52:49 +02:00
sni MIPS: Cleanup CP0 PRId and CP1 FPIR register access masks 2013-09-18 20:25:19 +02:00
txx9 driver:gpio remove all usage of gpio_remove retval in driver 2014-09-18 11:03:10 -07:00
vr41xx MIPS: Idle: Consolidate all declarations in <asm/idle.h>. 2013-05-22 01:34:27 +02:00
Kbuild MIPS: net: Add BPF JIT 2014-05-30 16:10:20 +02:00
Kbuild.platforms MIPS: Enable build for new system 'paravirt' 2014-06-02 12:34:20 +02:00
Kconfig Revert "MIPS: Kconfig: Disable SMP/CPS for 64-bit" 2016-03-29 08:35:42 -04:00
Kconfig.debug MIPS: MT: Remove SMTC support 2014-05-24 00:07:01 +02:00
Makefile MIPS: Fix build with binutils 2.24.51+ 2014-11-07 15:07:36 +01:00