summaryrefslogtreecommitdiffstats
path: root/drivers/pci/hotplug/rpadlpar_core.c
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt2010-04-06 17:03:40 +0200
committerBenjamin Herrenschmidt2010-04-28 08:23:24 +0200
commitb4a26be9f6f8bb72998e445cc75fc6dc0c29513a (patch)
tree0cb681f30a873a615d4f4a648fb6ee392b278b06 /drivers/pci/hotplug/rpadlpar_core.c
parentpowerpc/numa: Add form 1 NUMA affinity (diff)
downloadkernel-qcow2-linux-b4a26be9f6f8bb72998e445cc75fc6dc0c29513a.tar.gz
kernel-qcow2-linux-b4a26be9f6f8bb72998e445cc75fc6dc0c29513a.tar.xz
kernel-qcow2-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);