From 9025b80a173900bdea32c5da7ee59b2b5ece22f0 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Fri, 10 May 2013 10:05:59 -0700 Subject: [PATCH] 3.4-stable patches added patches: arm-omap-rx-51-change-probe-order-of-touchscreen-and-panel-spi-devices.patch kvm-vmx-fix-halt-emulation-while-emulating-invalid-guest-sate.patch --- ...of-touchscreen-and-panel-spi-devices.patch | 56 +++++++++++++++++++ ...n-while-emulating-invalid-guest-sate.patch | 41 ++++++++++++++ queue-3.4/series | 2 + 3 files changed, 99 insertions(+) create mode 100644 queue-3.4/arm-omap-rx-51-change-probe-order-of-touchscreen-and-panel-spi-devices.patch create mode 100644 queue-3.4/kvm-vmx-fix-halt-emulation-while-emulating-invalid-guest-sate.patch create mode 100644 queue-3.4/series diff --git a/queue-3.4/arm-omap-rx-51-change-probe-order-of-touchscreen-and-panel-spi-devices.patch b/queue-3.4/arm-omap-rx-51-change-probe-order-of-touchscreen-and-panel-spi-devices.patch new file mode 100644 index 00000000000..aa84800a363 --- /dev/null +++ b/queue-3.4/arm-omap-rx-51-change-probe-order-of-touchscreen-and-panel-spi-devices.patch @@ -0,0 +1,56 @@ +From e65f131a14726e5f1b880a528271a52428e5b3a5 Mon Sep 17 00:00:00 2001 +From: Aaro Koskinen +Date: Wed, 8 May 2013 16:48:00 -0700 +Subject: ARM: OMAP: RX-51: change probe order of touchscreen and panel SPI devices + +From: Aaro Koskinen + +commit e65f131a14726e5f1b880a528271a52428e5b3a5 upstream. + +Commit 9fdca9df (spi: omap2-mcspi: convert to module_platform_driver) +broke the SPI display/panel driver probe on RX-51/N900. The exact cause is +not fully understood, but it seems to be related to the probe order. SPI +communication to the panel driver (spi1.2) fails unless the touchscreen +(spi1.0) has been probed/initialized before. When the omap2-mcspi driver +was converted to a platform driver, it resulted in that the devices are +probed immediately after the board registers them in the order they are +listed in the board file. + +Fix the issue by moving the touchscreen before the panel in the SPI +device list. + +The patch fixes the following failure: + +[ 1.260955] acx565akm spi1.2: invalid display ID +[ 1.265899] panel-acx565akm display0: acx_panel_probe panel detect error +[ 1.273071] omapdss CORE error: driver probe failed: -19 + +Tested-by: Sebastian Reichel +Signed-off-by: Aaro Koskinen +Cc: Pali Rohár +Cc: Joni Lapilainen +Cc: Tomi Valkeinen +Cc: Felipe Balbi +Signed-off-by: Tony Lindgren +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/mach-omap2/board-rx51-peripherals.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/arch/arm/mach-omap2/board-rx51-peripherals.c ++++ b/arch/arm/mach-omap2/board-rx51-peripherals.c +@@ -63,11 +63,11 @@ + #define RX51_TSC2005_RESET_GPIO 104 + #define RX51_TSC2005_IRQ_GPIO 100 + +-/* list all spi devices here */ ++/* List all SPI devices here. Note that the list/probe order seems to matter! */ + enum { + RX51_SPI_WL1251, +- RX51_SPI_MIPID, /* LCD panel */ + RX51_SPI_TSC2005, /* Touch Controller */ ++ RX51_SPI_MIPID, /* LCD panel */ + }; + + static struct wl12xx_platform_data wl1251_pdata; diff --git a/queue-3.4/kvm-vmx-fix-halt-emulation-while-emulating-invalid-guest-sate.patch b/queue-3.4/kvm-vmx-fix-halt-emulation-while-emulating-invalid-guest-sate.patch new file mode 100644 index 00000000000..99085baeaaf --- /dev/null +++ b/queue-3.4/kvm-vmx-fix-halt-emulation-while-emulating-invalid-guest-sate.patch @@ -0,0 +1,41 @@ +From 8d76c49e9ffeee839bc0b7a3278a23f99101263e Mon Sep 17 00:00:00 2001 +From: Gleb Natapov +Date: Wed, 8 May 2013 18:38:44 +0300 +Subject: KVM: VMX: fix halt emulation while emulating invalid guest sate + +From: Gleb Natapov + +commit 8d76c49e9ffeee839bc0b7a3278a23f99101263e upstream. + +The invalid guest state emulation loop does not check halt_request +which causes 100% cpu loop while guest is in halt and in invalid +state, but more serious issue is that this leaves halt_request set, so +random instruction emulated by vm86 #GP exit can be interpreted +as halt which causes guest hang. Fix both problems by handling +halt_request in emulation loop. + +Reported-by: Tomas Papan +Tested-by: Tomas Papan +Reviewed-by: Paolo Bonzini +Signed-off-by: Gleb Natapov +Signed-off-by: Greg Kroah-Hartman + +--- + arch/x86/kvm/vmx.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- a/arch/x86/kvm/vmx.c ++++ b/arch/x86/kvm/vmx.c +@@ -4889,6 +4889,12 @@ static int handle_invalid_guest_state(st + if (err != EMULATE_DONE) + return 0; + ++ if (vcpu->arch.halt_request) { ++ vcpu->arch.halt_request = 0; ++ ret = kvm_emulate_halt(vcpu); ++ goto out; ++ } ++ + if (signal_pending(current)) + goto out; + if (need_resched()) diff --git a/queue-3.4/series b/queue-3.4/series new file mode 100644 index 00000000000..71d53758f26 --- /dev/null +++ b/queue-3.4/series @@ -0,0 +1,2 @@ +kvm-vmx-fix-halt-emulation-while-emulating-invalid-guest-sate.patch +arm-omap-rx-51-change-probe-order-of-touchscreen-and-panel-spi-devices.patch -- 2.47.3