]> Pileus Git - ~andy/linux/blobdiff - arch/powerpc/kvm/e500_tlb.c
KVM: PPC: e500: fix allocation size error on g2h_tlb1_map
[~andy/linux] / arch / powerpc / kvm / e500_tlb.c
index de8ea29409f2df3a05b73e61b99861beea36deb7..a27d134eef3674f98ba1535931582c8106e4291c 100644 (file)
@@ -303,15 +303,14 @@ static inline void kvmppc_e500_ref_setup(struct tlbe_ref *ref,
        ref->pfn = pfn;
        ref->flags = E500_TLB_VALID;
 
-       if (tlbe_is_writable(gtlbe)) {
-               ref->flags |= E500_TLB_DIRTY;
+       if (tlbe_is_writable(gtlbe))
                kvm_set_pfn_dirty(pfn);
-       }
 }
 
 static inline void kvmppc_e500_ref_release(struct tlbe_ref *ref)
 {
        if (ref->flags & E500_TLB_VALID) {
+               trace_kvm_booke206_ref_release(ref->pfn, ref->flags);
                ref->flags = 0;
        }
 }
@@ -1075,6 +1074,8 @@ void kvmppc_mmu_map(struct kvm_vcpu *vcpu, u64 eaddr, gpa_t gpaddr,
 
 int kvm_unmap_hva(struct kvm *kvm, unsigned long hva)
 {
+       trace_kvm_unmap_hva(hva);
+
        /*
         * Flush all shadow tlb entries everywhere. This is slow, but
         * we are 100% sure that we catch the to be unmapped page
@@ -1384,7 +1385,7 @@ int kvmppc_e500_tlb_init(struct kvmppc_vcpu_e500 *vcpu_e500)
        if (!vcpu_e500->gtlb_priv[1])
                goto err;
 
-       vcpu_e500->g2h_tlb1_map = kzalloc(sizeof(unsigned int) *
+       vcpu_e500->g2h_tlb1_map = kzalloc(sizeof(u64) *
                                          vcpu_e500->gtlb_params[1].entries,
                                          GFP_KERNEL);
        if (!vcpu_e500->g2h_tlb1_map)