|
@@ -983,36 +983,6 @@ long kvm_vm_ioctl_assigned_device(struct kvm *kvm, unsigned ioctl,
|
|
|
goto out;
|
|
|
break;
|
|
|
}
|
|
|
-#ifdef KVM_CAP_IRQ_ROUTING
|
|
|
- case KVM_SET_GSI_ROUTING: {
|
|
|
- struct kvm_irq_routing routing;
|
|
|
- struct kvm_irq_routing __user *urouting;
|
|
|
- struct kvm_irq_routing_entry *entries;
|
|
|
-
|
|
|
- r = -EFAULT;
|
|
|
- if (copy_from_user(&routing, argp, sizeof(routing)))
|
|
|
- goto out;
|
|
|
- r = -EINVAL;
|
|
|
- if (routing.nr >= KVM_MAX_IRQ_ROUTES)
|
|
|
- goto out;
|
|
|
- if (routing.flags)
|
|
|
- goto out;
|
|
|
- r = -ENOMEM;
|
|
|
- entries = vmalloc(routing.nr * sizeof(*entries));
|
|
|
- if (!entries)
|
|
|
- goto out;
|
|
|
- r = -EFAULT;
|
|
|
- urouting = argp;
|
|
|
- if (copy_from_user(entries, urouting->entries,
|
|
|
- routing.nr * sizeof(*entries)))
|
|
|
- goto out_free_irq_routing;
|
|
|
- r = kvm_set_irq_routing(kvm, entries, routing.nr,
|
|
|
- routing.flags);
|
|
|
- out_free_irq_routing:
|
|
|
- vfree(entries);
|
|
|
- break;
|
|
|
- }
|
|
|
-#endif /* KVM_CAP_IRQ_ROUTING */
|
|
|
#ifdef __KVM_HAVE_MSIX
|
|
|
case KVM_ASSIGN_SET_MSIX_NR: {
|
|
|
struct kvm_assigned_msix_nr entry_nr;
|