Alexander Graf wrote: > We have a condition in the ppc64 host mmu code that should never occur. > Unfortunately, it just did happen to me and I was rather puzzled on why, > because BUG_ON doesn't tell me anything useful. > > So let's add some more debug output in case this goes wrong. Also change > BUG to WARN, since I don't want to reboot every time I mess something up. > > Signed-off-by: Alexander Graf <agraf@xxxxxxx> > --- > arch/powerpc/kvm/book3s_64_mmu_host.c | 9 +++++++-- > 1 files changed, 7 insertions(+), 2 deletions(-) > > diff --git a/arch/powerpc/kvm/book3s_64_mmu_host.c b/arch/powerpc/kvm/book3s_64_mmu_host.c > index 41af12f..5bf91a7 100644 > --- a/arch/powerpc/kvm/book3s_64_mmu_host.c > +++ b/arch/powerpc/kvm/book3s_64_mmu_host.c > @@ -231,10 +231,15 @@ int kvmppc_mmu_map_page(struct kvm_vcpu *vcpu, struct kvmppc_pte *orig_pte) > vcpu->arch.mmu.esid_to_vsid(vcpu, orig_pte->eaddr >> SID_SHIFT, &vsid); > map = find_sid_vsid(vcpu, vsid); > if (!map) { > - kvmppc_mmu_map_segment(vcpu, orig_pte->eaddr); > + ret = kvmppc_mmu_map_segment(vcpu, orig_pte->eaddr); > + WARN_ON(ret < 0); > map = find_sid_vsid(vcpu, vsid); > } > - BUG_ON(!map); > + if (!map) { > + printk(KERN_ERR "KVM: Segment map for 0x%llx (0x%lx) failed\n", > + vsid, orig_pte->eaddr); > + WARN(); Return here, otherwise dereferencing map in the next line will crash anyway... > + } > > vsid = map->host_vsid; > va = hpt_va(orig_pte->eaddr, vsid, MMU_SEGSIZE_256M); > -- > 1.6.0.2 > > -- > 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 -jim -- 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