]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - src/patches/suse-2.6.27.39/patches.arch/ppc-powerpc-fix-pci-unmap-io.patch
Imported linux-2.6.27.39 suse/xen patches.
[ipfire-2.x.git] / src / patches / suse-2.6.27.39 / patches.arch / ppc-powerpc-fix-pci-unmap-io.patch
diff --git a/src/patches/suse-2.6.27.39/patches.arch/ppc-powerpc-fix-pci-unmap-io.patch b/src/patches/suse-2.6.27.39/patches.arch/ppc-powerpc-fix-pci-unmap-io.patch
new file mode 100644 (file)
index 0000000..115ef1b
--- /dev/null
@@ -0,0 +1,28 @@
+Subject: powerpc/pci: Fix unmapping of IO space on 64-bit
+From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+References: 439491
+
+A typo/thinko made us pass the wrong argument to __flush_hash_table_range
+when unplugging bridges, thus not flushing all the translations for
+the IO space on unplug.
+
+This causes the hypervisor to refuse unplugging slots.
+
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Olaf Hering <olh@suse.de>
+
+---
+ arch/powerpc/kernel/pci_64.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/powerpc/kernel/pci_64.c
++++ b/arch/powerpc/kernel/pci_64.c
+@@ -455,7 +455,7 @@ int pcibios_unmap_io_space(struct pci_bu
+                   pci_name(bus->self));
+               __flush_hash_table_range(&init_mm, res->start + _IO_BASE,
+-                                       res->end - res->start + 1);
++                                       res->end + _IO_BASE + 1);
+               return 0;
+       }