]> nv-tegra.nvidia Code Review - linux-2.6.git/blobdiff - virt/kvm/assigned-dev.c
KVM: enable PCI multiple-segments for pass-through device
[linux-2.6.git] / virt / kvm / assigned-dev.c
index f51e684dd238afe7960a55c43aa1af3aea8b7595..057e2cca6af5ed7a8c8cbdf4aa7c236713b3bf8f 100644 (file)
@@ -526,7 +526,8 @@ static int kvm_vm_ioctl_assign_device(struct kvm *kvm,
                r = -ENOMEM;
                goto out;
        }
-       dev = pci_get_bus_and_slot(assigned_dev->busnr,
+       dev = pci_get_domain_bus_and_slot(assigned_dev->segnr,
+                                  assigned_dev->busnr,
                                   assigned_dev->devfn);
        if (!dev) {
                printk(KERN_INFO "%s: host device not found\n", __func__);
@@ -548,6 +549,7 @@ static int kvm_vm_ioctl_assign_device(struct kvm *kvm,
        pci_reset_function(dev);
 
        match->assigned_dev_id = assigned_dev->assigned_dev_id;
+       match->host_segnr = assigned_dev->segnr;
        match->host_busnr = assigned_dev->busnr;
        match->host_devfn = assigned_dev->devfn;
        match->flags = assigned_dev->flags;