]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/pci/hotplug/pci_hotplug_core.c
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux...
[linux-2.6-omap-h63xx.git] / drivers / pci / hotplug / pci_hotplug_core.c
index e7152482518070b8aaff2c0d4146438bb3729ebb..535fce0f07f964edd1ecebc019a4347ec71cb549 100644 (file)
@@ -533,7 +533,7 @@ static struct hotplug_slot *get_slot_from_name (const char *name)
 
        list_for_each (tmp, &pci_hotplug_slot_list) {
                slot = list_entry (tmp, struct hotplug_slot, slot_list);
-               if (strcmp(slot->name, name) == 0)
+               if (strcmp(hotplug_slot_name(slot), name) == 0)
                        return slot;
        }
        return NULL;
@@ -569,12 +569,6 @@ int pci_hp_register(struct hotplug_slot *slot, struct pci_bus *bus, int slot_nr,
 
        mutex_lock(&pci_hp_mutex);
 
-       /* Check if we have already registered a slot with the same name. */
-       if (get_slot_from_name(name)) {
-               result = -EEXIST;
-               goto out;
-       }
-
        /*
         * No problems if we call this interface from both ACPI_PCI_SLOT
         * driver and call it here again. If we've already created the
@@ -583,27 +577,12 @@ int pci_hp_register(struct hotplug_slot *slot, struct pci_bus *bus, int slot_nr,
        pci_slot = pci_create_slot(bus, slot_nr, name, slot);
        if (IS_ERR(pci_slot)) {
                result = PTR_ERR(pci_slot);
-               goto cleanup;
-       }
-
-       if (pci_slot->hotplug) {
-               dbg("%s: already claimed\n", __func__);
-               result = -EBUSY;
-               goto cleanup;
+               goto out;
        }
 
        slot->pci_slot = pci_slot;
        pci_slot->hotplug = slot;
 
-       /*
-        * Allow pcihp drivers to override the ACPI_PCI_SLOT name.
-        */
-       if (strcmp(kobject_name(&pci_slot->kobj), name)) {
-               result = kobject_rename(&pci_slot->kobj, name);
-               if (result)
-                       goto cleanup;
-       }
-
        list_add(&slot->slot_list, &pci_hotplug_slot_list);
 
        result = fs_add_slot(pci_slot);
@@ -612,9 +591,6 @@ int pci_hp_register(struct hotplug_slot *slot, struct pci_bus *bus, int slot_nr,
 out:
        mutex_unlock(&pci_hp_mutex);
        return result;
-cleanup:
-       pci_destroy_slot(pci_slot);
-       goto out;
 }
 
 /**
@@ -635,7 +611,7 @@ int pci_hp_deregister(struct hotplug_slot *hotplug)
                return -ENODEV;
 
        mutex_lock(&pci_hp_mutex);
-       temp = get_slot_from_name(hotplug->name);
+       temp = get_slot_from_name(hotplug_slot_name(hotplug));
        if (temp != hotplug) {
                mutex_unlock(&pci_hp_mutex);
                return -ENODEV;
@@ -645,7 +621,7 @@ int pci_hp_deregister(struct hotplug_slot *hotplug)
 
        slot = hotplug->pci_slot;
        fs_remove_slot(slot);
-       dbg("Removed slot %s from the list\n", hotplug->name);
+       dbg("Removed slot %s from the list\n", hotplug_slot_name(hotplug));
 
        hotplug->release(hotplug);
        slot->hotplug = NULL;