]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.9-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 5 Jun 2013 04:06:11 +0000 (21:06 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 5 Jun 2013 04:06:11 +0000 (21:06 -0700)
added patches:
kvm-emulate-multibyte-nop.patch
kvm-fix-sil-dil-bpl-spl-in-the-mod-rm-fields.patch
regulator-palmas-fix-enable_reg-to-point-to-the-correct-reg-for-smps10.patch

queue-3.9/kvm-emulate-multibyte-nop.patch [new file with mode: 0644]
queue-3.9/kvm-fix-sil-dil-bpl-spl-in-the-mod-rm-fields.patch [new file with mode: 0644]
queue-3.9/regulator-palmas-fix-enable_reg-to-point-to-the-correct-reg-for-smps10.patch [new file with mode: 0644]
queue-3.9/series

diff --git a/queue-3.9/kvm-emulate-multibyte-nop.patch b/queue-3.9/kvm-emulate-multibyte-nop.patch
new file mode 100644 (file)
index 0000000..f484a70
--- /dev/null
@@ -0,0 +1,41 @@
+From 103f98ea64a1b0a67d8a1b23070b4db3533db2b8 Mon Sep 17 00:00:00 2001
+From: Paolo Bonzini <pbonzini@redhat.com>
+Date: Thu, 30 May 2013 13:22:39 +0200
+Subject: KVM: Emulate multibyte NOP
+
+From: Paolo Bonzini <pbonzini@redhat.com>
+
+commit 103f98ea64a1b0a67d8a1b23070b4db3533db2b8 upstream.
+
+This is encountered when booting RHEL5.9 64-bit.  There is another bug
+after this one that is not a simple emulation failure, but this one lets
+the boot proceed a bit.
+
+Signed-off-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/emulate.c |    4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/arch/x86/kvm/emulate.c
++++ b/arch/x86/kvm/emulate.c
+@@ -3987,7 +3987,8 @@ static const struct opcode twobyte_table
+       DI(ImplicitOps | Priv, invd), DI(ImplicitOps | Priv, wbinvd), N, N,
+       N, D(ImplicitOps | ModRM), N, N,
+       /* 0x10 - 0x1F */
+-      N, N, N, N, N, N, N, N, D(ImplicitOps | ModRM), N, N, N, N, N, N, N,
++      N, N, N, N, N, N, N, N,
++      D(ImplicitOps | ModRM), N, N, N, N, N, N, D(ImplicitOps | ModRM),
+       /* 0x20 - 0x2F */
+       DIP(ModRM | DstMem | Priv | Op3264, cr_read, check_cr_read),
+       DIP(ModRM | DstMem | Priv | Op3264, dr_read, check_dr_read),
+@@ -4825,6 +4826,7 @@ twobyte_insn:
+       case 0x08:              /* invd */
+       case 0x0d:              /* GrpP (prefetch) */
+       case 0x18:              /* Grp16 (prefetch/nop) */
++      case 0x1f:              /* nop */
+               break;
+       case 0x20: /* mov cr, reg */
+               ctxt->dst.val = ops->get_cr(ctxt, ctxt->modrm_reg);
diff --git a/queue-3.9/kvm-fix-sil-dil-bpl-spl-in-the-mod-rm-fields.patch b/queue-3.9/kvm-fix-sil-dil-bpl-spl-in-the-mod-rm-fields.patch
new file mode 100644 (file)
index 0000000..1a883eb
--- /dev/null
@@ -0,0 +1,39 @@
+From 8acb42070ec4c87a9baab5c7bac626030d5bef28 Mon Sep 17 00:00:00 2001
+From: Paolo Bonzini <pbonzini@redhat.com>
+Date: Thu, 30 May 2013 16:35:55 +0200
+Subject: KVM: fix sil/dil/bpl/spl in the mod/rm fields
+
+From: Paolo Bonzini <pbonzini@redhat.com>
+
+commit 8acb42070ec4c87a9baab5c7bac626030d5bef28 upstream.
+
+The x86-64 extended low-byte registers were fetched correctly from reg,
+but not from mod/rm.
+
+This fixes another bug in the boot of RHEL5.9 64-bit, but it is still
+not enough.
+
+Signed-off-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/emulate.c |    5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+--- a/arch/x86/kvm/emulate.c
++++ b/arch/x86/kvm/emulate.c
+@@ -1239,9 +1239,12 @@ static int decode_modrm(struct x86_emula
+       ctxt->modrm_seg = VCPU_SREG_DS;
+       if (ctxt->modrm_mod == 3) {
++              int highbyte_regs = ctxt->rex_prefix == 0;
++
+               op->type = OP_REG;
+               op->bytes = (ctxt->d & ByteOp) ? 1 : ctxt->op_bytes;
+-              op->addr.reg = decode_register(ctxt, ctxt->modrm_rm, ctxt->d & ByteOp);
++              op->addr.reg = decode_register(ctxt, ctxt->modrm_rm,
++                                             highbyte_regs && (ctxt->d & ByteOp));
+               if (ctxt->d & Sse) {
+                       op->type = OP_XMM;
+                       op->bytes = 16;
diff --git a/queue-3.9/regulator-palmas-fix-enable_reg-to-point-to-the-correct-reg-for-smps10.patch b/queue-3.9/regulator-palmas-fix-enable_reg-to-point-to-the-correct-reg-for-smps10.patch
new file mode 100644 (file)
index 0000000..92ef565
--- /dev/null
@@ -0,0 +1,33 @@
+From f232168df0c7e7414b70ac5d8fed83086d441c0b Mon Sep 17 00:00:00 2001
+From: Kishon Vijay Abraham I <kishon@ti.com>
+Date: Thu, 30 May 2013 15:55:09 +0530
+Subject: regulator: palmas: Fix "enable_reg" to point to the correct reg for SMPS10
+
+From: Kishon Vijay Abraham I <kishon@ti.com>
+
+commit f232168df0c7e7414b70ac5d8fed83086d441c0b upstream.
+
+regulator_enable_regmap() uses enable_reg to enable the regulator.
+But enable_reg for smps10 points to SMPS10_STATUS which is a
+read-only register. Fixed the same by having enable_reg
+set to SMPS10_CTRL.
+
+Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
+Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/regulator/palmas-regulator.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/regulator/palmas-regulator.c
++++ b/drivers/regulator/palmas-regulator.c
+@@ -677,7 +677,7 @@ static int palmas_probe(struct platform_
+                       pmic->desc[id].vsel_mask = SMPS10_VSEL;
+                       pmic->desc[id].enable_reg =
+                                       PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
+-                                                      PALMAS_SMPS10_STATUS);
++                                                      PALMAS_SMPS10_CTRL);
+                       pmic->desc[id].enable_mask = SMPS10_BOOST_EN;
+                       pmic->desc[id].min_uV = 3750000;
+                       pmic->desc[id].uV_step = 1250000;
index 5c8af022ea21441868fa70facbe8d004025a1aed..ef538bbac89d291d68dc7804255d32b9c1e3f869 100644 (file)
@@ -88,3 +88,6 @@ powerpc-tm-move-tm-abort-cause-codes-to-uapi.patch
 iscsi-target-fix-heap-buffer-overflow-on-error.patch
 ib_srpt-call-target_sess_cmd_list_set_waiting-during-shutdown_session.patch
 nfsv4-fix-a-thinko-in-nfs4_try_open_cached.patch
+kvm-emulate-multibyte-nop.patch
+kvm-fix-sil-dil-bpl-spl-in-the-mod-rm-fields.patch
+regulator-palmas-fix-enable_reg-to-point-to-the-correct-reg-for-smps10.patch