diff options
-rw-r--r-- | arch/powerpc/kvm/book3s_hv.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c index 89707354c2ef..b4a538b29da5 100644 --- a/arch/powerpc/kvm/book3s_hv.c +++ b/arch/powerpc/kvm/book3s_hv.c | |||
@@ -3656,15 +3656,17 @@ static int kvmppc_hv_setup_htab_rma(struct kvm_vcpu *vcpu) | |||
3656 | goto up_out; | 3656 | goto up_out; |
3657 | 3657 | ||
3658 | psize = vma_kernel_pagesize(vma); | 3658 | psize = vma_kernel_pagesize(vma); |
3659 | porder = __ilog2(psize); | ||
3660 | 3659 | ||
3661 | up_read(¤t->mm->mmap_sem); | 3660 | up_read(¤t->mm->mmap_sem); |
3662 | 3661 | ||
3663 | /* We can handle 4k, 64k or 16M pages in the VRMA */ | 3662 | /* We can handle 4k, 64k or 16M pages in the VRMA */ |
3664 | err = -EINVAL; | 3663 | if (psize >= 0x1000000) |
3665 | if (!(psize == 0x1000 || psize == 0x10000 || | 3664 | psize = 0x1000000; |
3666 | psize == 0x1000000)) | 3665 | else if (psize >= 0x10000) |
3667 | goto out_srcu; | 3666 | psize = 0x10000; |
3667 | else | ||
3668 | psize = 0x1000; | ||
3669 | porder = __ilog2(psize); | ||
3668 | 3670 | ||
3669 | senc = slb_pgsize_encoding(psize); | 3671 | senc = slb_pgsize_encoding(psize); |
3670 | kvm->arch.vrma_slb_v = senc | SLB_VSID_B_1T | | 3672 | kvm->arch.vrma_slb_v = senc | SLB_VSID_B_1T | |