]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 10 May 2013 17:05:59 +0000 (10:05 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 10 May 2013 17:05:59 +0000 (10:05 -0700)
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

queue-3.4/arm-omap-rx-51-change-probe-order-of-touchscreen-and-panel-spi-devices.patch [new file with mode: 0644]
queue-3.4/kvm-vmx-fix-halt-emulation-while-emulating-invalid-guest-sate.patch [new file with mode: 0644]
queue-3.4/series [new file with mode: 0644]

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 (file)
index 0000000..aa84800
--- /dev/null
@@ -0,0 +1,56 @@
+From e65f131a14726e5f1b880a528271a52428e5b3a5 Mon Sep 17 00:00:00 2001
+From: Aaro Koskinen <aaro.koskinen@iki.fi>
+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 <aaro.koskinen@iki.fi>
+
+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 <sre@debian.org>
+Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
+Cc: Pali Rohár <pali.rohar@gmail.com>
+Cc: Joni Lapilainen <joni.lapilainen@gmail.com>
+Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
+Cc: Felipe Balbi <balbi@ti.com>
+Signed-off-by: Tony Lindgren <tony@atomide.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 (file)
index 0000000..99085ba
--- /dev/null
@@ -0,0 +1,41 @@
+From 8d76c49e9ffeee839bc0b7a3278a23f99101263e Mon Sep 17 00:00:00 2001
+From: Gleb Natapov <gleb@redhat.com>
+Date: Wed, 8 May 2013 18:38:44 +0300
+Subject: KVM: VMX: fix halt emulation while emulating invalid guest sate
+
+From: Gleb Natapov <gleb@redhat.com>
+
+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 <tomas.papan@gmail.com>
+Tested-by: Tomas Papan <tomas.papan@gmail.com>
+Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
+Signed-off-by: Gleb Natapov <gleb@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 (file)
index 0000000..71d5375
--- /dev/null
@@ -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