]> xenbits.xensource.com Git - people/ssmith/nc2-2.6.27.git/commitdiff
patch remove-release-flr
authorSteven Smith <ssmith@weybridge.uk.xensource.com>
Tue, 30 Jun 2009 11:55:48 +0000 (12:55 +0100)
committerSteven Smith <ssmith@weybridge.uk.xensource.com>
Tue, 30 Jun 2009 11:55:48 +0000 (12:55 +0100)
drivers/xen/pciback/controller.c
drivers/xen/pciback/passthrough.c
drivers/xen/pciback/pci_stub.c
drivers/xen/pciback/pciback.h
drivers/xen/pciback/slot.c
drivers/xen/pciback/vpci.c

index 4c1aaf35a4451dd50a609a74c4bb804d77ea4ad1..294e48f805dbd28a03a39d969719b5087dd864f6 100644 (file)
@@ -208,7 +208,7 @@ void pciback_release_pci_dev(struct pciback_device *pdev, struct pci_dev *dev)
        }
 
        spin_unlock_irqrestore(&dev_data->lock, flags);
-       pcistub_put_pci_dev(found_dev, 0);
+       pcistub_put_pci_dev(found_dev);
 }
 
 int pciback_init_devices(struct pciback_device *pdev)
@@ -396,7 +396,7 @@ void pciback_release_devices(struct pciback_device *pdev)
                list_for_each_entry_safe(dev_entry, d,
                                         &cntrl_entry->dev_list, list) {
                        list_del(&dev_entry->list);
-                       pcistub_put_pci_dev(dev_entry->dev, 0);
+                       pcistub_put_pci_dev(dev_entry->dev);
                        kfree(dev_entry);
                }
                list_del(&cntrl_entry->list);
index b9948a5e80a814096bdc482c44a7c733b3da5f84..9e7a0c45fb0436ca8af58e5093b907d389467c28 100644 (file)
@@ -88,7 +88,7 @@ void pciback_release_pci_dev(struct pciback_device *pdev, struct pci_dev *dev)
        spin_unlock_irqrestore(&dev_data->lock, flags);
 
        if (found_dev)
-               pcistub_put_pci_dev(found_dev, 1);
+               pcistub_put_pci_dev(found_dev);
 }
 
 int pciback_init_devices(struct pciback_device *pdev)
@@ -157,7 +157,7 @@ void pciback_release_devices(struct pciback_device *pdev)
 
        list_for_each_entry_safe(dev_entry, t, &dev_data->dev_list, list) {
                list_del(&dev_entry->list);
-               pcistub_put_pci_dev(dev_entry->dev, 1);
+               pcistub_put_pci_dev(dev_entry->dev);
                kfree(dev_entry);
        }
 
index 486034f2f5f623823980d471b73e6e2556b2e84f..fb40598bddf0ac5bb05512fc305cef960a93dfed 100644 (file)
@@ -237,7 +237,7 @@ struct pci_dev *pcistub_get_pci_dev(struct pciback_device *pdev,
        return found_dev;
 }
 
-void pcistub_put_pci_dev(struct pci_dev *dev, int do_flr)
+void pcistub_put_pci_dev(struct pci_dev *dev)
 {
        struct pcistub_device *psdev, *found_psdev = NULL;
        unsigned long flags;
@@ -253,17 +253,14 @@ void pcistub_put_pci_dev(struct pci_dev *dev, int do_flr)
 
        spin_unlock_irqrestore(&pcistub_devices_lock, flags);
 
+       if (found_psdev == NULL)
+               return;
+
        /*hold this lock for avoiding breaking link between
        * pcistub and pciback when AER is in processing
        */
        down_write(&pcistub_sem);
 
-       /* For pass-through devices, do an FLR (or approximate) for the device
-        * before it is put back and ready for the next domain
-        */
-       if (!disable_all_flr && do_flr)
-               pciback_flr_device(dev);
-
        /* Cleanup our device
         * (so it's ready for the next domain)
         */
index 5cd967cd23076b99b4d518a2a6779ad0876ea4b3..f2a50fa28e57c899875add562f7e738e488a2de6 100644 (file)
@@ -71,7 +71,7 @@ struct pci_dev *pcistub_get_pci_dev_by_slot(struct pciback_device *pdev,
                                            int slot, int func);
 struct pci_dev *pcistub_get_pci_dev(struct pciback_device *pdev,
                                    struct pci_dev *dev);
-void pcistub_put_pci_dev(struct pci_dev *dev, int do_flr);
+void pcistub_put_pci_dev(struct pci_dev *dev);
 
 /* Reference/unreference PCI Devices and stubs without changing the state */
 struct pci_dev *pcistub_ref_pci_dev(struct pci_dev *dev);
index 9c666333853e859183446823275cfe5d919cb892..105a8b6a36b88ce615165a41b734dee21e37f4ff 100644 (file)
@@ -109,7 +109,7 @@ void pciback_release_pci_dev(struct pciback_device *pdev, struct pci_dev *dev)
        spin_unlock_irqrestore(&slot_dev->lock, flags);
 
        if (found_dev)
-               pcistub_put_pci_dev(found_dev, 0);
+               pcistub_put_pci_dev(found_dev);
 }
 
 int pciback_init_devices(struct pciback_device *pdev)
@@ -149,7 +149,7 @@ void pciback_release_devices(struct pciback_device *pdev)
                for (slot = 0; slot < PCI_SLOT_MAX; slot++) {
                        dev = slot_dev->slots[bus][slot];
                        if (dev != NULL)
-                               pcistub_put_pci_dev(dev, 0);
+                               pcistub_put_pci_dev(dev);
                }
 
        kfree(slot_dev);
index 259e71dbb17fcc72aec471ea36bf99049238a5f0..a5b7ecee87438e6a0bba4557528f509d13fc6c69 100644 (file)
@@ -162,7 +162,7 @@ void pciback_release_pci_dev(struct pciback_device *pdev, struct pci_dev *dev)
        spin_unlock_irqrestore(&vpci_dev->lock, flags);
 
        if (found_dev)
-               pcistub_put_pci_dev(found_dev, 0);
+               pcistub_put_pci_dev(found_dev);
 }
 
 int pciback_init_devices(struct pciback_device *pdev)
@@ -202,7 +202,7 @@ void pciback_release_devices(struct pciback_device *pdev)
                list_for_each_entry_safe(e, tmp, &vpci_dev->dev_list[slot],
                                         list) {
                        list_del(&e->list);
-                       pcistub_put_pci_dev(e->dev, 0);
+                       pcistub_put_pci_dev(e->dev);
                        kfree(e);
                }
        }