]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - arch/ia64/sn/kernel/io_init.c
[IA64-SGI] Small cleanup for misuse of list_for_each to list_for_each_safe.
[karo-tx-linux.git] / arch / ia64 / sn / kernel / io_init.c
index d7e4d79e16a8d425747d45abed163a124c98b6da..3437c2390429daff50c60e1700dde33e66645198 100644 (file)
@@ -617,15 +617,15 @@ void sn_bus_store_sysdata(struct pci_dev *dev)
 void sn_bus_free_sysdata(void)
 {
        struct sysdata_el *element;
-       struct list_head *list;
+       struct list_head *list, *safe;
 
-sn_sysdata_free_start:
-       list_for_each(list, &sn_sysdata_list) {
+       list_for_each_safe(list, safe, &sn_sysdata_list) {
                element = list_entry(list, struct sysdata_el, entry);
                list_del(&element->entry);
+               list_del(&(((struct pcidev_info *)
+                            (element->sysdata))->pdi_list));
                kfree(element->sysdata);
                kfree(element);
-               goto sn_sysdata_free_start;
        }
        return;
 }