diff options
Diffstat (limited to 'arch/powerpc/kvm/powerpc.c')
-rw-r--r-- | arch/powerpc/kvm/powerpc.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c index 1493c8de947b..87f4dc886076 100644 --- a/arch/powerpc/kvm/powerpc.c +++ b/arch/powerpc/kvm/powerpc.c | |||
@@ -246,6 +246,7 @@ int kvm_dev_ioctl_check_extension(long ext) | |||
246 | #endif | 246 | #endif |
247 | #ifdef CONFIG_PPC_BOOK3S_64 | 247 | #ifdef CONFIG_PPC_BOOK3S_64 |
248 | case KVM_CAP_SPAPR_TCE: | 248 | case KVM_CAP_SPAPR_TCE: |
249 | case KVM_CAP_PPC_ALLOC_HTAB: | ||
249 | r = 1; | 250 | r = 1; |
250 | break; | 251 | break; |
251 | #endif /* CONFIG_PPC_BOOK3S_64 */ | 252 | #endif /* CONFIG_PPC_BOOK3S_64 */ |
@@ -802,6 +803,23 @@ long kvm_arch_vm_ioctl(struct file *filp, | |||
802 | r = -EFAULT; | 803 | r = -EFAULT; |
803 | break; | 804 | break; |
804 | } | 805 | } |
806 | |||
807 | case KVM_PPC_ALLOCATE_HTAB: { | ||
808 | struct kvm *kvm = filp->private_data; | ||
809 | u32 htab_order; | ||
810 | |||
811 | r = -EFAULT; | ||
812 | if (get_user(htab_order, (u32 __user *)argp)) | ||
813 | break; | ||
814 | r = kvmppc_alloc_reset_hpt(kvm, &htab_order); | ||
815 | if (r) | ||
816 | break; | ||
817 | r = -EFAULT; | ||
818 | if (put_user(htab_order, (u32 __user *)argp)) | ||
819 | break; | ||
820 | r = 0; | ||
821 | break; | ||
822 | } | ||
805 | #endif /* CONFIG_KVM_BOOK3S_64_HV */ | 823 | #endif /* CONFIG_KVM_BOOK3S_64_HV */ |
806 | 824 | ||
807 | #ifdef CONFIG_PPC_BOOK3S_64 | 825 | #ifdef CONFIG_PPC_BOOK3S_64 |