]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
PCI Hotplug core: add 'name' param pci_hp_register interface
authorAlex Chiang <achiang@hp.com>
Mon, 1 Dec 2008 20:09:14 +0000 (13:09 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 5 Dec 2008 18:55:16 +0000 (10:55 -0800)
commit 1359f2701b96abd9bb69c1273fb995a093b6409a upstream.

Update pci_hp_register() to take a const char *name parameter.

The motivation for this is to clean up the individual hotplug
drivers so that each one does not have to manage its own name.
The PCI core should be the place where we manage the name.

We update the interface and all callsites first, in a
"no functional change" manner, and clean up the drivers later.

Cc: kristen.c.accardi@intel.com
Acked-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Reviewed-by: Matthew Wilcox <willy@linux.intel.com>
Signed-off-by: Alex Chiang <achiang@hp.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/pci/hotplug/acpiphp_core.c
drivers/pci/hotplug/cpci_hotplug_core.c
drivers/pci/hotplug/cpqphp_core.c
drivers/pci/hotplug/fakephp.c
drivers/pci/hotplug/ibmphp_ebda.c
drivers/pci/hotplug/pci_hotplug_core.c
drivers/pci/hotplug/pciehp_core.c
drivers/pci/hotplug/rpaphp_slot.c
drivers/pci/hotplug/sgi_hotplug.c
drivers/pci/hotplug/shpchp_core.c
include/linux/pci_hotplug.h

index 0e496e866a84dc51480d4cb3194e1ea6b62023c8..e9841765339f22775341e9434d24d569ae178ec5 100644 (file)
@@ -340,7 +340,8 @@ int acpiphp_register_hotplug_slot(struct acpiphp_slot *acpiphp_slot)
 
        retval = pci_hp_register(slot->hotplug_slot,
                                        acpiphp_slot->bridge->pci_bus,
-                                       acpiphp_slot->device);
+                                       acpiphp_slot->device,
+                                       slot->name);
        if (retval == -EBUSY)
                goto error_hpslot;
        if (retval) {
index 935947991dc98649dfaa8794fb55604ee12cb895..5e5dee85763c7f2f74ee3644273449c89e4fbd28 100644 (file)
@@ -285,7 +285,8 @@ cpci_hp_register_bus(struct pci_bus *bus, u8 first, u8 last)
                info->attention_status = cpci_get_attention_status(slot);
 
                dbg("registering slot %s", slot->hotplug_slot->name);
-               status = pci_hp_register(slot->hotplug_slot, bus, i);
+               status = pci_hp_register(slot->hotplug_slot, bus, i,
+                                        slot->hotplug_slot->name);
                if (status) {
                        err("pci_hp_register failed with error %d", status);
                        goto error_name;
index 87a68d298a45c3a9291ba33c3efc1562aebb72dc..0fdb2ad159837e406126cbe41c7ae9cee913bdb3 100644 (file)
@@ -436,7 +436,8 @@ static int ctrl_slot_setup(struct controller *ctrl,
                                slot_number);
                result = pci_hp_register(hotplug_slot,
                                         ctrl->pci_dev->bus,
-                                        slot->device);
+                                        slot->device,
+                                        hotplug_slot->name);
                if (result) {
                        err("pci_hp_register failed with error %d\n", result);
                        goto error_name;
index 146ca9cd1567f20858b521dc1b552c1da3362f17..3069f215383288b2812f1b03e9586a24f29a89b3 100644 (file)
@@ -126,7 +126,8 @@ static int add_slot(struct pci_dev *dev)
        slot->release = &dummy_release;
        slot->private = dslot;
 
-       retval = pci_hp_register(slot, dev->bus, PCI_SLOT(dev->devfn));
+       retval = pci_hp_register(slot, dev->bus, PCI_SLOT(dev->devfn),
+                                slot->name);
        if (retval) {
                err("pci_hp_register failed with error %d\n", retval);
                goto error_dslot;
index 8467d028732514277a098815f3597ebfed1591ae..46deff3e13e25eb40ee380eaa99ec2a86893469a 100644 (file)
@@ -1002,7 +1002,8 @@ static int __init ebda_rsrc_controller (void)
 
                snprintf (tmp_slot->hotplug_slot->name, 30, "%s", create_file_name (tmp_slot));
                pci_hp_register(tmp_slot->hotplug_slot,
-                       pci_find_bus(0, tmp_slot->bus), tmp_slot->device);
+                       pci_find_bus(0, tmp_slot->bus), tmp_slot->device,
+                       tmp_slot->hotplug_slot->name);
        }
 
        print_ebda_hpc ();
index 5f85b1b120e3ddc12c350e2b821c18946ec90e27..3e37d636432bea56cadd52f07e67cc663ec063bc 100644 (file)
@@ -547,13 +547,15 @@ out:
  * @bus: bus this slot is on
  * @slot: pointer to the &struct hotplug_slot to register
  * @slot_nr: slot number
+ * @name: name registered with kobject core
  *
  * Registers a hotplug slot with the pci hotplug subsystem, which will allow
  * userspace interaction to the slot.
  *
  * Returns 0 if successful, anything else for an error.
  */
-int pci_hp_register(struct hotplug_slot *slot, struct pci_bus *bus, int slot_nr)
+int pci_hp_register(struct hotplug_slot *slot, struct pci_bus *bus, int slot_nr,
+                       const char *name)
 {
        int result;
        struct pci_slot *pci_slot;
@@ -569,7 +571,7 @@ int pci_hp_register(struct hotplug_slot *slot, struct pci_bus *bus, int slot_nr)
        }
 
        /* Check if we have already registered a slot with the same name. */
-       if (get_slot_from_name(slot->name))
+       if (get_slot_from_name(name))
                return -EEXIST;
 
        /*
@@ -577,7 +579,7 @@ int pci_hp_register(struct hotplug_slot *slot, struct pci_bus *bus, int slot_nr)
         * driver and call it here again. If we've already created the
         * pci_slot, the interface will simply bump the refcount.
         */
-       pci_slot = pci_create_slot(bus, slot_nr, slot->name);
+       pci_slot = pci_create_slot(bus, slot_nr, name);
        if (IS_ERR(pci_slot))
                return PTR_ERR(pci_slot);
 
@@ -593,8 +595,8 @@ int pci_hp_register(struct hotplug_slot *slot, struct pci_bus *bus, int slot_nr)
        /*
         * Allow pcihp drivers to override the ACPI_PCI_SLOT name.
         */
-       if (strcmp(kobject_name(&pci_slot->kobj), slot->name)) {
-               result = kobject_rename(&pci_slot->kobj, slot->name);
+       if (strcmp(kobject_name(&pci_slot->kobj), name)) {
+               result = kobject_rename(&pci_slot->kobj, name);
                if (result) {
                        pci_destroy_slot(pci_slot);
                        return result;
@@ -607,8 +609,7 @@ int pci_hp_register(struct hotplug_slot *slot, struct pci_bus *bus, int slot_nr)
 
        result = fs_add_slot(pci_slot);
        kobject_uevent(&pci_slot->kobj, KOBJ_ADD);
-       dbg("Added slot %s to the list\n", slot->name);
-
+       dbg("Added slot %s to the list\n", name);
 
        return result;
 }
index 4fd5355bc3b55a6c957f2d0b031b2a5dd9d2d7d3..cbd84f8b4b5c91bf275ff75af3086dd17439b822 100644 (file)
@@ -221,7 +221,8 @@ static int init_slots(struct controller *ctrl)
 duplicate_name:
                retval = pci_hp_register(hotplug_slot,
                                         ctrl->pci_dev->subordinate,
-                                        slot->device);
+                                        slot->device,
+                                        slot->name);
                if (retval) {
                        /*
                         * If slot N already exists, we'll try to create
index 9b714ea93d207036fe9b51d6f3c2bbe0233c1c25..30d430bc4cbb26d40a1c450e0ff62aec507a8f31 100644 (file)
@@ -137,7 +137,7 @@ int rpaphp_register_slot(struct slot *slot)
                slotno = PCI_SLOT(PCI_DN(slot->dn->child)->devfn);
        else
                slotno = -1;
-       retval = pci_hp_register(php_slot, slot->bus, slotno);
+       retval = pci_hp_register(php_slot, slot->bus, slotno, slot->name);
        if (retval) {
                err("pci_hp_register failed with error %d\n", retval);
                return retval;
index 410fe0394a8ea63fb8de8542654d514d2ec36992..6d20bbd4359aae18f41d160a65697a73ca047582 100644 (file)
@@ -653,7 +653,8 @@ static int sn_hotplug_slot_register(struct pci_bus *pci_bus)
                bss_hotplug_slot->ops = &sn_hotplug_slot_ops;
                bss_hotplug_slot->release = &sn_release_slot;
 
-               rc = pci_hp_register(bss_hotplug_slot, pci_bus, device);
+               rc = pci_hp_register(bss_hotplug_slot, pci_bus, device,
+                                    bss_hotplug_slot->name);
                if (rc)
                        goto register_err;
 
index cc38615395f1087f10a07764fe8d402524a9830b..bf5096612aaba9b33ab055fc9c7d2964b6f23aa6 100644 (file)
@@ -146,7 +146,8 @@ static int init_slots(struct controller *ctrl)
                    slot->hp_slot, slot->number, ctrl->slot_device_offset);
 duplicate_name:
                retval = pci_hp_register(slot->hotplug_slot,
-                               ctrl->pci_dev->subordinate, slot->device);
+                               ctrl->pci_dev->subordinate, slot->device,
+                               hotplug_slot->name);
                if (retval) {
                        /*
                         * If slot N already exists, we'll try to create
index a08cd06b541a190975d04ee7d1cdd8af73e0a9f5..5efba6671865e8047732ece8662680293d8d17bd 100644 (file)
@@ -165,7 +165,8 @@ struct hotplug_slot {
 };
 #define to_hotplug_slot(n) container_of(n, struct hotplug_slot, kobj)
 
-extern int pci_hp_register(struct hotplug_slot *, struct pci_bus *, int nr);
+extern int pci_hp_register(struct hotplug_slot *, struct pci_bus *, int nr,
+                          const char *name);
 extern int pci_hp_deregister(struct hotplug_slot *slot);
 extern int __must_check pci_hp_change_slot_info        (struct hotplug_slot *slot,
                                                 struct hotplug_slot_info *info);