Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8e77af6a authored by John Keller's avatar John Keller Committed by Greg Kroah-Hartman
Browse files

[PATCH] PCI Hotplug: SN: Fix cleanup on hotplug removal of PPB



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: default avatarPrarit Bhargava <prarit@sgi.com>
Signed-off-by: default avatarJohn Keller <jpk@sgi.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 0afabe90
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -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_dev *dev)
		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_slot *bss_hotplug_slot)
				   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);