aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/powerpc/kvm/book3s_hv.c12
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(&current->mm->mmap_sem); 3660 up_read(&current->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 |