"Aneesh Kumar K.V" <aneesh.ku...@linux.vnet.ibm.com> writes:

> Andreas Schwab <sch...@linux-m68k.org> writes:
>
>> "Aneesh Kumar K.V" <aneesh.ku...@linux.vnet.ibm.com> writes:
>>
>>> diff --git a/arch/powerpc/kvm/book3s_32_mmu_host.c 
>>> b/arch/powerpc/kvm/book3s_32_mmu_host.c
>>> index 837f13e..00aa612 100644
>>> --- a/arch/powerpc/kvm/book3s_32_mmu_host.c
>>> +++ b/arch/powerpc/kvm/book3s_32_mmu_host.c
>>> @@ -141,7 +141,7 @@ extern char etext[];
>>>  int kvmppc_mmu_map_page(struct kvm_vcpu *vcpu, struct kvmppc_pte *orig_pte)
>>>  {
>>>     pfn_t hpaddr;
>>> -   u64 va;
>>> +   u64 vpn;
>>>     u64 vsid;
>>>     struct kvmppc_sid_map *map;
>>>     volatile u32 *pteg;
>>> @@ -173,7 +173,7 @@ int kvmppc_mmu_map_page(struct kvm_vcpu *vcpu, struct 
>>> kvmppc_pte *orig_pte)
>>>     BUG_ON(!map);
>>>  
>>>     vsid = map->host_vsid;
>>> -   va = (vsid << SID_SHIFT) | (eaddr & ~ESID_MASK);
>>> +   vpn = (vsid << (SID_SHIFT - VPN_SHIFT)) | ((eaddr & ~ESID_MASK) >> 
>>> VPN_SHIFT)
>>
>> Where is VPN_SHIFT?  Where is the semicolon?
>
> I had done a kvm build test with the changes, but missed the fact that
> this is !SMP and PPC_BOOK3S_32. Will send a follow up patch.

How about the below ? Any help on how to get this tested ?

diff --git a/arch/powerpc/include/asm/kvm_book3s_32.h 
b/arch/powerpc/include/asm/kvm_book3s_32.h
index 38040ff..ce0ef6c 100644
--- a/arch/powerpc/include/asm/kvm_book3s_32.h
+++ b/arch/powerpc/include/asm/kvm_book3s_32.h
@@ -42,5 +42,6 @@ static inline void svcpu_put(struct kvmppc_book3s_shadow_vcpu 
*svcpu)
 #define SID_SHIFT      28
 #define ESID_MASK      0xf0000000
 #define VSID_MASK      0x00fffffff0000000ULL
+#define VPN_SHIFT      12
 
 #endif /* __ASM_KVM_BOOK3S_32_H__ */
diff --git a/arch/powerpc/kvm/book3s_32_mmu_host.c 
b/arch/powerpc/kvm/book3s_32_mmu_host.c
index 00aa612..b0f625a 100644
--- a/arch/powerpc/kvm/book3s_32_mmu_host.c
+++ b/arch/powerpc/kvm/book3s_32_mmu_host.c
@@ -173,8 +173,8 @@ int kvmppc_mmu_map_page(struct kvm_vcpu *vcpu, struct 
kvmppc_pte *orig_pte)
        BUG_ON(!map);
 
        vsid = map->host_vsid;
-       vpn = (vsid << (SID_SHIFT - VPN_SHIFT)) | ((eaddr & ~ESID_MASK) >> 
VPN_SHIFT)
-
+       vpn = (vsid << (SID_SHIFT - VPN_SHIFT)) |
+               ((eaddr & ~ESID_MASK) >> VPN_SHIFT);
 next_pteg:
        if (rr == 16) {
                primary = !primary;

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to