From: Greg Kroah-Hartman Date: Wed, 5 Jun 2013 04:06:11 +0000 (-0700) Subject: 3.9-stable patches X-Git-Tag: v3.0.81~16 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f0e371bd1d106537ca33a7e0f476c9bab2bef9dc;p=thirdparty%2Fkernel%2Fstable-queue.git 3.9-stable patches 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 --- diff --git a/queue-3.9/kvm-emulate-multibyte-nop.patch b/queue-3.9/kvm-emulate-multibyte-nop.patch new file mode 100644 index 00000000000..f484a702c51 --- /dev/null +++ b/queue-3.9/kvm-emulate-multibyte-nop.patch @@ -0,0 +1,41 @@ +From 103f98ea64a1b0a67d8a1b23070b4db3533db2b8 Mon Sep 17 00:00:00 2001 +From: Paolo Bonzini +Date: Thu, 30 May 2013 13:22:39 +0200 +Subject: KVM: Emulate multibyte NOP + +From: Paolo Bonzini + +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 +Signed-off-by: Gleb Natapov +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..1a883eb495a --- /dev/null +++ b/queue-3.9/kvm-fix-sil-dil-bpl-spl-in-the-mod-rm-fields.patch @@ -0,0 +1,39 @@ +From 8acb42070ec4c87a9baab5c7bac626030d5bef28 Mon Sep 17 00:00:00 2001 +From: Paolo Bonzini +Date: Thu, 30 May 2013 16:35:55 +0200 +Subject: KVM: fix sil/dil/bpl/spl in the mod/rm fields + +From: Paolo Bonzini + +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 +Signed-off-by: Gleb Natapov +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..92ef5654517 --- /dev/null +++ b/queue-3.9/regulator-palmas-fix-enable_reg-to-point-to-the-correct-reg-for-smps10.patch @@ -0,0 +1,33 @@ +From f232168df0c7e7414b70ac5d8fed83086d441c0b Mon Sep 17 00:00:00 2001 +From: Kishon Vijay Abraham I +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 + +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 +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + 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; diff --git a/queue-3.9/series b/queue-3.9/series index 5c8af022ea2..ef538bbac89 100644 --- a/queue-3.9/series +++ b/queue-3.9/series @@ -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