Home Home > GIT Browse
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Suchanek <msuchanek@suse.de>2018-10-31 12:36:54 +0100
committerMichal Suchanek <msuchanek@suse.de>2018-10-31 23:28:35 +0100
commit84770d92de24c9ce036ff57edea011833e50e9b5 (patch)
treeb94e27ebd574c064464d2d793c821ee35f407df8
parentbc37ee8d93416db4cae7401217bceb7dd7f0921f (diff)
KVM: PPC: Book3S HV: Make xive_pushed a byte, not a word
(bsc#1061840).
-rw-r--r--patches.arch/KVM-PPC-Book3S-HV-Make-xive_pushed-a-byte-not-a-word.patch64
-rw-r--r--series.conf1
2 files changed, 65 insertions, 0 deletions
diff --git a/patches.arch/KVM-PPC-Book3S-HV-Make-xive_pushed-a-byte-not-a-word.patch b/patches.arch/KVM-PPC-Book3S-HV-Make-xive_pushed-a-byte-not-a-word.patch
new file mode 100644
index 0000000000..07adae9513
--- /dev/null
+++ b/patches.arch/KVM-PPC-Book3S-HV-Make-xive_pushed-a-byte-not-a-word.patch
@@ -0,0 +1,64 @@
+From 35c2405efc0142860c4b698f4c6331567c4ca1ef Mon Sep 17 00:00:00 2001
+From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Date: Fri, 12 Jan 2018 13:37:15 +1100
+Subject: [PATCH] KVM: PPC: Book3S HV: Make xive_pushed a byte, not a word
+
+References: bsc#1061840
+Patch-mainline: v4.16-rc1
+Git-commit: 35c2405efc0142860c4b698f4c6331567c4ca1ef
+
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
+Acked-by: Michal Suchanek <msuchanek@suse.de>
+---
+ arch/powerpc/include/asm/kvm_host.h | 2 +-
+ arch/powerpc/kvm/book3s_hv_rmhandlers.S | 6 +++---
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h
+index bfe51356af5e..0c44fa67608d 100644
+--- a/arch/powerpc/include/asm/kvm_host.h
++++ b/arch/powerpc/include/asm/kvm_host.h
+@@ -739,7 +739,7 @@ struct kvm_vcpu_arch {
+ struct kvmppc_icp *icp; /* XICS presentation controller */
+ struct kvmppc_xive_vcpu *xive_vcpu; /* XIVE virtual CPU data */
+ __be32 xive_cam_word; /* Cooked W2 in proper endian with valid bit */
+- u32 xive_pushed; /* Is the VP pushed on the physical CPU ? */
++ u8 xive_pushed; /* Is the VP pushed on the physical CPU ? */
+ union xive_tma_w01 xive_saved_state; /* W0..1 of XIVE thread state */
+ #endif
+
+diff --git a/arch/powerpc/kvm/book3s_hv_rmhandlers.S b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
+index 948f21cf84d5..a7f429bc6de0 100644
+--- a/arch/powerpc/kvm/book3s_hv_rmhandlers.S
++++ b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
+@@ -1033,7 +1033,7 @@ ALT_FTR_SECTION_END_IFCLR(CPU_FTR_ARCH_300)
+ li r9, TM_QW1_OS + TM_WORD2
+ stwcix r11,r9,r10
+ li r9, 1
+- stw r9, VCPU_XIVE_PUSHED(r4)
++ stb r9, VCPU_XIVE_PUSHED(r4)
+ eieio
+
+ /*
+@@ -1458,7 +1458,7 @@ mc_cont:
+ #endif
+ #ifdef CONFIG_KVM_XICS
+ /* We are exiting, pull the VP from the XIVE */
+- lwz r0, VCPU_XIVE_PUSHED(r9)
++ lbz r0, VCPU_XIVE_PUSHED(r9)
+ cmpwi cr0, r0, 0
+ beq 1f
+ li r7, TM_SPC_PULL_OS_CTX
+@@ -1487,7 +1487,7 @@ mc_cont:
+ /* Fixup some of the state for the next load */
+ li r10, 0
+ li r0, 0xff
+- stw r10, VCPU_XIVE_PUSHED(r9)
++ stb r10, VCPU_XIVE_PUSHED(r9)
+ stb r10, (VCPU_XIVE_SAVED_STATE+3)(r9)
+ stb r0, (VCPU_XIVE_SAVED_STATE+4)(r9)
+ eieio
+--
+2.13.7
+
diff --git a/series.conf b/series.conf
index 93b0e215f3..ae5e9364cb 100644
--- a/series.conf
+++ b/series.conf
@@ -13234,6 +13234,7 @@
patches.arch/KVM-PPC-Book3S-HV-Enable-use-of-the-new-XIVE-single-.patch
patches.arch/KVM-PPC-Book3S-HV-Don-t-use-existing-prodded-flag-fo.patch
patches.arch/KVM-PPC-Book3S-HV-Check-DR-not-IR-to-chose-real-vs-v.patch
+ patches.arch/KVM-PPC-Book3S-HV-Make-xive_pushed-a-byte-not-a-word.patch
patches.arch/KVM-PPC-Book3S-HV-Drop-locks-before-reading-guest-me.patch
patches.fixes/KVM-PPC-Book3S-PR-Fix-svcpu-copying-with-preemption-.patch
patches.arch/KVM-PPC-Book3S-PR-Fix-broken-select-due-to-misspelli.patch