|
|
@@ -21,8 +21,6 @@
|
|
|
#include "conf_space.h"
|
|
|
#include "conf_space_quirks.h"
|
|
|
|
|
|
-#define DRV_NAME "xen-pciback"
|
|
|
-
|
|
|
static char *pci_devs_to_hide;
|
|
|
wait_queue_head_t xen_pcibk_aer_wait_queue;
|
|
|
/*Add sem for sync AER handling and xen_pcibk remove/reconfigue ops,
|
|
|
@@ -222,6 +220,8 @@ void pcistub_put_pci_dev(struct pci_dev *dev)
|
|
|
}
|
|
|
|
|
|
spin_unlock_irqrestore(&pcistub_devices_lock, flags);
|
|
|
+ if (WARN_ON(!found_psdev))
|
|
|
+ return;
|
|
|
|
|
|
/*hold this lock for avoiding breaking link between
|
|
|
* pcistub and xen_pcibk when AER is in processing
|
|
|
@@ -514,12 +514,9 @@ static void kill_domain_by_device(struct pcistub_device *psdev)
|
|
|
int err;
|
|
|
char nodename[PCI_NODENAME_MAX];
|
|
|
|
|
|
- if (!psdev)
|
|
|
- dev_err(&psdev->dev->dev,
|
|
|
- "device is NULL when do AER recovery/kill_domain\n");
|
|
|
+ BUG_ON(!psdev);
|
|
|
snprintf(nodename, PCI_NODENAME_MAX, "/local/domain/0/backend/pci/%d/0",
|
|
|
psdev->pdev->xdev->otherend_id);
|
|
|
- nodename[strlen(nodename)] = '\0';
|
|
|
|
|
|
again:
|
|
|
err = xenbus_transaction_start(&xbt);
|
|
|
@@ -605,7 +602,7 @@ static pci_ers_result_t common_process(struct pcistub_device *psdev,
|
|
|
if (test_bit(_XEN_PCIF_active,
|
|
|
(unsigned long *)&psdev->pdev->sh_info->flags)) {
|
|
|
dev_dbg(&psdev->dev->dev,
|
|
|
- "schedule pci_conf service in xen_pcibk\n");
|
|
|
+ "schedule pci_conf service in " DRV_NAME "\n");
|
|
|
xen_pcibk_test_and_schedule_op(psdev->pdev);
|
|
|
}
|
|
|
|
|
|
@@ -995,8 +992,7 @@ static ssize_t pcistub_slot_add(struct device_driver *drv, const char *buf,
|
|
|
err = count;
|
|
|
return err;
|
|
|
}
|
|
|
-
|
|
|
-DRIVER_ATTR(new_slot, S_IWUSR, NULL, pcistub_slot_add);
|
|
|
+static DRIVER_ATTR(new_slot, S_IWUSR, NULL, pcistub_slot_add);
|
|
|
|
|
|
static ssize_t pcistub_slot_remove(struct device_driver *drv, const char *buf,
|
|
|
size_t count)
|
|
|
@@ -1015,8 +1011,7 @@ static ssize_t pcistub_slot_remove(struct device_driver *drv, const char *buf,
|
|
|
err = count;
|
|
|
return err;
|
|
|
}
|
|
|
-
|
|
|
-DRIVER_ATTR(remove_slot, S_IWUSR, NULL, pcistub_slot_remove);
|
|
|
+static DRIVER_ATTR(remove_slot, S_IWUSR, NULL, pcistub_slot_remove);
|
|
|
|
|
|
static ssize_t pcistub_slot_show(struct device_driver *drv, char *buf)
|
|
|
{
|
|
|
@@ -1039,8 +1034,7 @@ static ssize_t pcistub_slot_show(struct device_driver *drv, char *buf)
|
|
|
|
|
|
return count;
|
|
|
}
|
|
|
-
|
|
|
-DRIVER_ATTR(slots, S_IRUSR, pcistub_slot_show, NULL);
|
|
|
+static DRIVER_ATTR(slots, S_IRUSR, pcistub_slot_show, NULL);
|
|
|
|
|
|
static ssize_t pcistub_irq_handler_show(struct device_driver *drv, char *buf)
|
|
|
{
|
|
|
@@ -1069,8 +1063,7 @@ static ssize_t pcistub_irq_handler_show(struct device_driver *drv, char *buf)
|
|
|
spin_unlock_irqrestore(&pcistub_devices_lock, flags);
|
|
|
return count;
|
|
|
}
|
|
|
-
|
|
|
-DRIVER_ATTR(irq_handlers, S_IRUSR, pcistub_irq_handler_show, NULL);
|
|
|
+static DRIVER_ATTR(irq_handlers, S_IRUSR, pcistub_irq_handler_show, NULL);
|
|
|
|
|
|
static ssize_t pcistub_irq_handler_switch(struct device_driver *drv,
|
|
|
const char *buf,
|
|
|
@@ -1106,7 +1099,8 @@ static ssize_t pcistub_irq_handler_switch(struct device_driver *drv,
|
|
|
err = count;
|
|
|
return err;
|
|
|
}
|
|
|
-DRIVER_ATTR(irq_handler_state, S_IWUSR, NULL, pcistub_irq_handler_switch);
|
|
|
+static DRIVER_ATTR(irq_handler_state, S_IWUSR, NULL,
|
|
|
+ pcistub_irq_handler_switch);
|
|
|
|
|
|
static ssize_t pcistub_quirk_add(struct device_driver *drv, const char *buf,
|
|
|
size_t count)
|
|
|
@@ -1170,8 +1164,8 @@ static ssize_t pcistub_quirk_show(struct device_driver *drv, char *buf)
|
|
|
|
|
|
return count;
|
|
|
}
|
|
|
-
|
|
|
-DRIVER_ATTR(quirks, S_IRUSR | S_IWUSR, pcistub_quirk_show, pcistub_quirk_add);
|
|
|
+static DRIVER_ATTR(quirks, S_IRUSR | S_IWUSR, pcistub_quirk_show,
|
|
|
+ pcistub_quirk_add);
|
|
|
|
|
|
static ssize_t permissive_add(struct device_driver *drv, const char *buf,
|
|
|
size_t count)
|
|
|
@@ -1236,8 +1230,8 @@ static ssize_t permissive_show(struct device_driver *drv, char *buf)
|
|
|
spin_unlock_irqrestore(&pcistub_devices_lock, flags);
|
|
|
return count;
|
|
|
}
|
|
|
-
|
|
|
-DRIVER_ATTR(permissive, S_IRUSR | S_IWUSR, permissive_show, permissive_add);
|
|
|
+static DRIVER_ATTR(permissive, S_IRUSR | S_IWUSR, permissive_show,
|
|
|
+ permissive_add);
|
|
|
|
|
|
static void pcistub_exit(void)
|
|
|
{
|
|
|
@@ -1374,3 +1368,4 @@ module_init(xen_pcibk_init);
|
|
|
module_exit(xen_pcibk_cleanup);
|
|
|
|
|
|
MODULE_LICENSE("Dual BSD/GPL");
|
|
|
+MODULE_ALIAS("xen-backend:pci");
|