diff options
| -rw-r--r-- | arch/ia64/sn/kernel/io_init.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/arch/ia64/sn/kernel/io_init.c b/arch/ia64/sn/kernel/io_init.c index 2e4e56be8df5..3437c2390429 100644 --- a/arch/ia64/sn/kernel/io_init.c +++ b/arch/ia64/sn/kernel/io_init.c | |||
| @@ -617,17 +617,15 @@ void sn_bus_store_sysdata(struct pci_dev *dev) | |||
| 617 | void sn_bus_free_sysdata(void) | 617 | void sn_bus_free_sysdata(void) |
| 618 | { | 618 | { |
| 619 | struct sysdata_el *element; | 619 | struct sysdata_el *element; |
| 620 | struct list_head *list; | 620 | struct list_head *list, *safe; |
| 621 | 621 | ||
| 622 | sn_sysdata_free_start: | 622 | list_for_each_safe(list, safe, &sn_sysdata_list) { |
| 623 | list_for_each(list, &sn_sysdata_list) { | ||
| 624 | element = list_entry(list, struct sysdata_el, entry); | 623 | element = list_entry(list, struct sysdata_el, entry); |
| 625 | list_del(&element->entry); | 624 | list_del(&element->entry); |
| 626 | list_del(&(((struct pcidev_info *) | 625 | list_del(&(((struct pcidev_info *) |
| 627 | (element->sysdata))->pdi_list)); | 626 | (element->sysdata))->pdi_list)); |
| 628 | kfree(element->sysdata); | 627 | kfree(element->sysdata); |
| 629 | kfree(element); | 628 | kfree(element); |
| 630 | goto sn_sysdata_free_start; | ||
| 631 | } | 629 | } |
| 632 | return; | 630 | return; |
| 633 | } | 631 | } |
