* [PATCH] KVM-PPC: Fix mtsrin in book3s_64 mmu
@ 2009-12-19 17:07 Alexander Graf
2009-12-19 19:02 ` Hollis Blanchard
2009-12-20 9:31 ` Avi Kivity
0 siblings, 2 replies; 3+ messages in thread
From: Alexander Graf @ 2009-12-19 17:07 UTC (permalink / raw)
To: kvm-ppc; +Cc: kvm@vger.kernel.org list, Benjamin Herrenschmidt
We were shifting the Ks/Kp/N bits one bit too far on mtsrin. It took
me some time to figure that out, so I also put in some debugging and a
comment explaining the conversion.
This fixes current OpenBIOS boot on PPC64 KVM.
Signed-off-by: Alexander Graf <agraf@suse.de>
---
arch/powerpc/kvm/book3s_64_mmu.c | 22 +++++++++++++++++++++-
1 files changed, 21 insertions(+), 1 deletions(-)
diff --git a/arch/powerpc/kvm/book3s_64_mmu.c b/arch/powerpc/kvm/book3s_64_mmu.c
index 5598f88..e4beeb3 100644
--- a/arch/powerpc/kvm/book3s_64_mmu.c
+++ b/arch/powerpc/kvm/book3s_64_mmu.c
@@ -390,6 +390,26 @@ static void kvmppc_mmu_book3s_64_mtsrin(struct kvm_vcpu *vcpu, u32 srnum,
{
u64 rb = 0, rs = 0;
+ /*
+ * According to Book3 2.01 mtsrin is implemented as:
+ *
+ * The SLB entry specified by (RB)32:35 is loaded from register
+ * RS, as follows.
+ *
+ * SLBE Bit Source SLB Field
+ *
+ * 0:31 0x0000_0000 ESID-0:31
+ * 32:35 (RB)32:35 ESID-32:35
+ * 36 0b1 V
+ * 37:61 0x00_0000|| 0b0 VSID-0:24
+ * 62:88 (RS)37:63 VSID-25:51
+ * 89:91 (RS)33:35 Ks Kp N
+ * 92 (RS)36 L ((RS)36 must be 0b0)
+ * 93 0b0 C
+ */
+
+ dprintk("KVM MMU: mtsrin(0x%x, 0x%lx)\n", srnum, value);
+
/* ESID = srnum */
rb |= (srnum & 0xf) << 28;
/* Set the valid bit */
@@ -400,7 +420,7 @@ static void kvmppc_mmu_book3s_64_mtsrin(struct kvm_vcpu *vcpu, u32 srnum,
/* VSID = VSID */
rs |= (value & 0xfffffff) << 12;
/* flags = flags */
- rs |= ((value >> 27) & 0xf) << 9;
+ rs |= ((value >> 28) & 0x7) << 9;
kvmppc_mmu_book3s_64_slbmte(vcpu, rs, rb);
}
--
1.6.0.2
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH] KVM-PPC: Fix mtsrin in book3s_64 mmu
2009-12-19 17:07 [PATCH] KVM-PPC: Fix mtsrin in book3s_64 mmu Alexander Graf
@ 2009-12-19 19:02 ` Hollis Blanchard
2009-12-20 9:31 ` Avi Kivity
1 sibling, 0 replies; 3+ messages in thread
From: Hollis Blanchard @ 2009-12-19 19:02 UTC (permalink / raw)
To: Alexander Graf; +Cc: kvm-ppc, kvm@vger.kernel.org list, Benjamin Herrenschmidt
On Sat, Dec 19, 2009 at 9:07 AM, Alexander Graf <agraf@suse.de> wrote:
> We were shifting the Ks/Kp/N bits one bit too far on mtsrin. It took
> me some time to figure that out, so I also put in some debugging and a
> comment explaining the conversion.
>
> This fixes current OpenBIOS boot on PPC64 KVM.
>
> Signed-off-by: Alexander Graf <agraf@suse.de>
Acked-by: Hollis Blanchard <hollis@penguinppc.org>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] KVM-PPC: Fix mtsrin in book3s_64 mmu
2009-12-19 17:07 [PATCH] KVM-PPC: Fix mtsrin in book3s_64 mmu Alexander Graf
2009-12-19 19:02 ` Hollis Blanchard
@ 2009-12-20 9:31 ` Avi Kivity
1 sibling, 0 replies; 3+ messages in thread
From: Avi Kivity @ 2009-12-20 9:31 UTC (permalink / raw)
To: Alexander Graf; +Cc: kvm-ppc, kvm@vger.kernel.org list, Benjamin Herrenschmidt
On 12/19/2009 07:07 PM, Alexander Graf wrote:
> We were shifting the Ks/Kp/N bits one bit too far on mtsrin. It took
> me some time to figure that out, so I also put in some debugging and a
> comment explaining the conversion.
>
> This fixes current OpenBIOS boot on PPC64 KVM.
>
Applied and queued for 2.6.33. Thanks.
--
error compiling committee.c: too many arguments to function
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2009-12-20 9:31 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-19 17:07 [PATCH] KVM-PPC: Fix mtsrin in book3s_64 mmu Alexander Graf
2009-12-19 19:02 ` Hollis Blanchard
2009-12-20 9:31 ` Avi Kivity
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox