|
@@ -66,7 +66,6 @@ struct dummy_slot {
|
|
struct pci_dev *dev;
|
|
struct pci_dev *dev;
|
|
struct work_struct remove_work;
|
|
struct work_struct remove_work;
|
|
unsigned long removed;
|
|
unsigned long removed;
|
|
- char name[8];
|
|
|
|
};
|
|
};
|
|
|
|
|
|
static int debug;
|
|
static int debug;
|
|
@@ -96,10 +95,13 @@ static void dummy_release(struct hotplug_slot *slot)
|
|
kfree(dslot);
|
|
kfree(dslot);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+#define SLOT_NAME_SIZE 8
|
|
|
|
+
|
|
static int add_slot(struct pci_dev *dev)
|
|
static int add_slot(struct pci_dev *dev)
|
|
{
|
|
{
|
|
struct dummy_slot *dslot;
|
|
struct dummy_slot *dslot;
|
|
struct hotplug_slot *slot;
|
|
struct hotplug_slot *slot;
|
|
|
|
+ char name[SLOT_NAME_SIZE];
|
|
int retval = -ENOMEM;
|
|
int retval = -ENOMEM;
|
|
static int count = 1;
|
|
static int count = 1;
|
|
|
|
|
|
@@ -119,20 +121,18 @@ static int add_slot(struct pci_dev *dev)
|
|
if (!dslot)
|
|
if (!dslot)
|
|
goto error_info;
|
|
goto error_info;
|
|
|
|
|
|
- slot->name = dslot->name;
|
|
|
|
- snprintf(slot->name, sizeof(dslot->name), "fake%d", count++);
|
|
|
|
- dbg("slot->name = %s\n", slot->name);
|
|
|
|
|
|
+ snprintf(name, SLOT_NAME_SIZE, "fake%d", count++);
|
|
slot->ops = &dummy_hotplug_slot_ops;
|
|
slot->ops = &dummy_hotplug_slot_ops;
|
|
slot->release = &dummy_release;
|
|
slot->release = &dummy_release;
|
|
slot->private = dslot;
|
|
slot->private = dslot;
|
|
|
|
|
|
- retval = pci_hp_register(slot, dev->bus, PCI_SLOT(dev->devfn),
|
|
|
|
- slot->name);
|
|
|
|
|
|
+ retval = pci_hp_register(slot, dev->bus, PCI_SLOT(dev->devfn), name);
|
|
if (retval) {
|
|
if (retval) {
|
|
err("pci_hp_register failed with error %d\n", retval);
|
|
err("pci_hp_register failed with error %d\n", retval);
|
|
goto error_dslot;
|
|
goto error_dslot;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ dbg("slot->name = %s\n", hotplug_slot_name(slot));
|
|
dslot->slot = slot;
|
|
dslot->slot = slot;
|
|
dslot->dev = pci_dev_get(dev);
|
|
dslot->dev = pci_dev_get(dev);
|
|
list_add (&dslot->node, &slot_list);
|
|
list_add (&dslot->node, &slot_list);
|
|
@@ -168,10 +168,11 @@ static void remove_slot(struct dummy_slot *dslot)
|
|
{
|
|
{
|
|
int retval;
|
|
int retval;
|
|
|
|
|
|
- dbg("removing slot %s\n", dslot->slot->name);
|
|
|
|
|
|
+ dbg("removing slot %s\n", hotplug_slot_name(dslot->slot));
|
|
retval = pci_hp_deregister(dslot->slot);
|
|
retval = pci_hp_deregister(dslot->slot);
|
|
if (retval)
|
|
if (retval)
|
|
- err("Problem unregistering a slot %s\n", dslot->slot->name);
|
|
|
|
|
|
+ err("Problem unregistering a slot %s\n",
|
|
|
|
+ hotplug_slot_name(dslot->slot));
|
|
}
|
|
}
|
|
|
|
|
|
/* called from the single-threaded workqueue handler to remove a slot */
|
|
/* called from the single-threaded workqueue handler to remove a slot */
|
|
@@ -309,7 +310,7 @@ static int disable_slot(struct hotplug_slot *slot)
|
|
return -ENODEV;
|
|
return -ENODEV;
|
|
dslot = slot->private;
|
|
dslot = slot->private;
|
|
|
|
|
|
- dbg("%s - physical_slot = %s\n", __func__, slot->name);
|
|
|
|
|
|
+ dbg("%s - physical_slot = %s\n", __func__, hotplug_slot_name(slot));
|
|
|
|
|
|
for (func = 7; func >= 0; func--) {
|
|
for (func = 7; func >= 0; func--) {
|
|
dev = pci_get_slot(dslot->dev->bus, dslot->dev->devfn + func);
|
|
dev = pci_get_slot(dslot->dev->bus, dslot->dev->devfn + func);
|