Re: [PATCH] PCI hotplug changes for 2.5.63

From: Greg KH (greg@kroah.com)
Date: Mon Feb 24 2003 - 20:16:04 EST


ChangeSet 1.1022.1.4, 2003/02/24 16:26:14-08:00, greg@kroah.com

[PATCH] PCI Hotplug: remove the list_lock, as we rely on sysfs to detect any duplicate slot names.

diff -Nru a/drivers/hotplug/pci_hotplug_core.c b/drivers/hotplug/pci_hotplug_core.c
--- a/drivers/hotplug/pci_hotplug_core.c Mon Feb 24 17:15:50 2003
+++ b/drivers/hotplug/pci_hotplug_core.c Mon Feb 24 17:15:50 2003
@@ -67,8 +67,6 @@
 
 //////////////////////////////////////////////////////////////////
 
-static spinlock_t list_lock;
-
 static LIST_HEAD(pci_hotplug_slot_list);
 
 static struct subsystem hotplug_slots_subsys;
@@ -531,23 +529,16 @@
         if ((slot->info == NULL) || (slot->ops == NULL))
                 return -EINVAL;
 
- /* make sure we have not already registered this slot */
- spin_lock (&list_lock);
- if (get_slot_from_name (slot->name) != NULL) {
- spin_unlock (&list_lock);
- return -EINVAL;
- }
-
         strncpy(slot->kobj.name, slot->name, KOBJ_NAME_LEN);
         kobj_set_kset_s(slot, hotplug_slots_subsys);
 
+ /* this can fail if we have already registered a slot with the same name */
         if (kobject_register(&slot->kobj)) {
                 err("Unable to register kobject");
                 return -EINVAL;
         }
                 
         list_add (&slot->slot_list, &pci_hotplug_slot_list);
- spin_unlock (&list_lock);
 
         result = fs_add_slot (slot);
         dbg ("Added slot %s to the list\n", slot->name);
@@ -570,16 +561,11 @@
         if (slot == NULL)
                 return -ENODEV;
 
- /* make sure we have this slot in our list before trying to delete it */
- spin_lock (&list_lock);
         temp = get_slot_from_name (slot->name);
         if (temp != slot) {
- spin_unlock (&list_lock);
                 return -ENODEV;
         }
-
         list_del (&slot->slot_list);
- spin_unlock (&list_lock);
 
         fs_remove_slot (slot);
         dbg ("Removed slot %s from the list\n", slot->name);
@@ -638,8 +624,6 @@
 static int __init pci_hotplug_init (void)
 {
         int result;
-
- spin_lock_init(&list_lock);
 
         kset_set_kset_s(&hotplug_slots_subsys, pci_bus_type.subsys);
         result = subsystem_register(&hotplug_slots_subsys);

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Feb 28 2003 - 22:00:24 EST