summaryrefslogtreecommitdiffstats
path: root/drivers/pci/hotplug/rpaphp_core.c
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2010-04-06 15:03:40 +0000
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2010-04-28 16:23:24 +1000
commitb4a26be9f6f8bb72998e445cc75fc6dc0c29513a (patch)
tree0cb681f30a873a615d4f4a648fb6ee392b278b06 /drivers/pci/hotplug/rpaphp_core.c
parent4b83c330b4d38e869111bda6e9077d4f61ed974a (diff)
downloadlinux-stable-b4a26be9f6f8bb72998e445cc75fc6dc0c29513a.tar.gz
linux-stable-b4a26be9f6f8bb72998e445cc75fc6dc0c29513a.tar.bz2
linux-stable-b4a26be9f6f8bb72998e445cc75fc6dc0c29513a.zip
powerpc/pseries: Flush lazy kernel mappings after unplug operations
This ensures that the translations for unmapped IO mappings or unmapped memory are properly removed from the MMU hash table before such an unplug. Without this, the hypervisor refuses the unplug operations due to those resources still being mapped by the partition. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'drivers/pci/hotplug/rpaphp_core.c')
-rw-r--r--drivers/pci/hotplug/rpaphp_core.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/pci/hotplug/rpaphp_core.c b/drivers/pci/hotplug/rpaphp_core.c
index 719702240780..ef7411c660b9 100644
--- a/drivers/pci/hotplug/rpaphp_core.c
+++ b/drivers/pci/hotplug/rpaphp_core.c
@@ -29,6 +29,7 @@
#include <linux/pci_hotplug.h>
#include <linux/smp.h>
#include <linux/init.h>
+#include <linux/vmalloc.h>
#include <asm/eeh.h> /* for eeh_add_device() */
#include <asm/rtas.h> /* rtas_call */
#include <asm/pci-bridge.h> /* for pci_controller */
@@ -418,6 +419,8 @@ static int disable_slot(struct hotplug_slot *hotplug_slot)
return -EINVAL;
pcibios_remove_pci_devices(slot->bus);
+ vm_unmap_aliases();
+
slot->state = NOT_CONFIGURED;
return 0;
}