From pcihpd-discuss-admin@lists.sourceforge.net Wed Mar 8 11:22:06 2006 From: John Keller To: pcihpd-discuss@lists.sourceforge.net Cc: gregkh@suse.de, John Keller Message-Id: <20060308192134.3879.40465.sendpatchset@attica.americas.sgi.com> Subject: PCI Hotplug: SN: Fix cleanup on hotplug removal of PPB Date: Wed, 08 Mar 2006 13:21:34 -0600 When doing a hotplug removal of a PPB, sn_bus_store_sysdata() needs to be called for the PPB and all of its children. Acked-by: Prarit Bhargava Signed-off-by: John Keller Signed-off-by: Greg Kroah-Hartman --- drivers/pci/hotplug/sgi_hotplug.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) --- gregkh-2.6.orig/drivers/pci/hotplug/sgi_hotplug.c +++ gregkh-2.6/drivers/pci/hotplug/sgi_hotplug.c @@ -3,7 +3,7 @@ * License. See the file "COPYING" in the main directory of this archive * for more details. * - * Copyright (C) 2005 Silicon Graphics, Inc. All rights reserved. + * Copyright (C) 2005-2006 Silicon Graphics, Inc. All rights reserved. * * This work was based on the 2.4/2.6 kernel development by Dick Reigner. * Work to add BIOS PROM support was completed by Mike Habeck. @@ -230,6 +230,13 @@ static void sn_bus_free_data(struct pci_ list_for_each_entry(child, &subordinate_bus->devices, bus_list) sn_bus_free_data(child); } + /* + * Some drivers may use dma accesses during the + * driver remove function. We release the sysdata + * areas after the driver remove functions have + * been called. + */ + sn_bus_store_sysdata(dev); sn_pci_unfixup_slot(dev); } @@ -429,13 +436,6 @@ static int disable_slot(struct hotplug_s PCI_DEVFN(slot->device_num + 1, PCI_FUNC(func))); if (dev) { - /* - * Some drivers may use dma accesses during the - * driver remove function. We release the sysdata - * areas after the driver remove functions have - * been called. - */ - sn_bus_store_sysdata(dev); sn_bus_free_data(dev); pci_remove_bus_device(dev); pci_dev_put(dev);