On Tue, 2013-08-06 at 17:01 +0530, Bharat Bhushan wrote: > @@ -449,7 +446,16 @@ static inline int kvmppc_e500_shadow_map(struct kvmppc_vcpu_e500 *vcpu_e500, > gvaddr &= ~((tsize_pages << PAGE_SHIFT) - 1); > } > > - kvmppc_e500_ref_setup(ref, gtlbe, pfn); > + pgdir = vcpu_e500->vcpu.arch.pgdir; > + ptep = lookup_linux_pte(pgdir, hva, &tsize_pages); > + if (pte_present(*ptep)) { > + wimg = (pte_val(*ptep) >> PTE_WIMGE_SHIFT) & MAS2_WIMGE_MASK; > + } else { > + printk(KERN_ERR "pte not present: gfn %lx, pfn %lx\n", > + (long)gfn, pfn); > + return -EINVAL; Don't let the guest spam the host kernel console by repeatedly accessing bad mappings (even if it requires host userspace to assist by pointing a memslot at a bad hva). This should at most be printk_ratelimited(), and probably just pr_debug(). It should also have __func__ context. Also, I don't see the return value getting checked (the immediate callers check it and propogate the error, but kvmppc_mmu_map() doesn't). We want to send a machine check to the guest if this happens (or possibly exit to userspace since it indicates a bad memslot, not just a guest bug). We don't want to just silently retry over and over. Otherwise, this series looks good to me. -Scott -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html