summaryrefslogtreecommitdiffstats
path: root/drivers/pci/hotplug/rpadlpar_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/rpadlpar_core.c
parent4b83c330b4d38e869111bda6e9077d4f61ed974a (diff)
downloadblackbird-op-linux-b4a26be9f6f8bb72998e445cc75fc6dc0c29513a.tar.gz
blackbird-op-linux-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/rpadlpar_core.c')
-rw-r--r--drivers/pci/hotplug/rpadlpar_core.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/pci/hotplug/rpadlpar_core.c b/drivers/pci/hotplug/rpadlpar_core.c
index 4e3e0382c16e..083034710fa6 100644
--- a/drivers/pci/hotplug/rpadlpar_core.c
+++ b/drivers/pci/hotplug/rpadlpar_core.c
@@ -20,6 +20,7 @@
#include <linux/init.h>
#include <linux/pci.h>
#include <linux/string.h>
+#include <linux/vmalloc.h>
#include <asm/pci-bridge.h>
#include <linux/mutex.h>
@@ -430,6 +431,8 @@ int dlpar_remove_slot(char *drc_name)
rc = dlpar_remove_pci_slot(drc_name, dn);
break;
}
+ vm_unmap_aliases();
+
printk(KERN_INFO "%s: slot %s removed\n", DLPAR_MODULE_NAME, drc_name);
exit:
mutex_unlock(&rpadlpar_mutex);
OpenPOWER on IntegriCloud