From: Akinobu Mita This patch fixes invalid usage of list_for_each() list_for_each (node, &bridge_list) { bridge = (struct acpiphp_bridge *)node; ... } This code works while the member of list node is located at the head of struct acpiphp_bridge. Cc: Greg Kroah-Hartman Acked-by: Kristen Carlson Accardi Signed-off-by: Akinobu Mita Signed-off-by: Andrew Morton --- drivers/pci/hotplug/acpiphp_glue.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff -puN drivers/pci/hotplug/acpiphp_glue.c~acpiphp-fix-use-of-list_for_each-macro drivers/pci/hotplug/acpiphp_glue.c --- a/drivers/pci/hotplug/acpiphp_glue.c~acpiphp-fix-use-of-list_for_each-macro +++ a/drivers/pci/hotplug/acpiphp_glue.c @@ -1693,14 +1693,10 @@ void __exit acpiphp_glue_exit(void) */ int __init acpiphp_get_num_slots(void) { - struct list_head *node; struct acpiphp_bridge *bridge; - int num_slots; - - num_slots = 0; + int num_slots = 0; - list_for_each (node, &bridge_list) { - bridge = (struct acpiphp_bridge *)node; + list_for_each_entry (bridge, &bridge_list, list) { dbg("Bus %04x:%02x has %d slot%s\n", pci_domain_nr(bridge->pci_bus), bridge->pci_bus->number, bridge->nr_slots, _