X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=drivers%2Fpci%2Fremove.c;h=bdc2a44d68e1dbc4859c7d1628a24411ca0802ee;hb=7cd95f56cb61f5348d062527c9d3653196f6e629;hp=ec4a82ba29a8d04b6739462e846395388cace68d;hpb=a80f509f4a4f41ea8693733124470ad63a12664a;p=linux-2.6 diff --git a/drivers/pci/remove.c b/drivers/pci/remove.c index ec4a82ba29..bdc2a44d68 100644 --- a/drivers/pci/remove.c +++ b/drivers/pci/remove.c @@ -1,6 +1,6 @@ #include #include -#include +#include #include "pci.h" static void pci_free_resources(struct pci_dev *dev) @@ -19,17 +19,11 @@ static void pci_free_resources(struct pci_dev *dev) static void pci_stop_dev(struct pci_dev *dev) { - if (!dev->global_list.next) - return; - - if (!list_empty(&dev->global_list)) { + if (dev->is_added) { pci_proc_detach_device(dev); pci_remove_sysfs_dev_files(dev); device_unregister(&dev->dev); - down_write(&pci_bus_sem); - list_del(&dev->global_list); - dev->global_list.next = dev->global_list.prev = NULL; - up_write(&pci_bus_sem); + dev->is_added = 0; } if (dev->bus->self)