瀏覽代碼

powerpc/pci: Fix unmapping of IO space on 64-bit

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.  The third parameter to __flush_hash_table_range
is `end', not `size'.

This causes the hypervisor to refuse unplugging slots.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Benjamin Herrenschmidt 16 年之前
父節點
當前提交
b30115ea8f
共有 1 個文件被更改,包括 1 次插入1 次删除
  1. 1 1
      arch/powerpc/kernel/pci_64.c

+ 1 - 1
arch/powerpc/kernel/pci_64.c

@@ -426,7 +426,7 @@ int pcibios_unmap_io_space(struct pci_bus *bus)
 		    pci_name(bus->self));
 		    pci_name(bus->self));
 
 
 		__flush_hash_table_range(&init_mm, res->start + _IO_BASE,
 		__flush_hash_table_range(&init_mm, res->start + _IO_BASE,
-					 res->end - res->start + 1);
+					 res->end + _IO_BASE + 1);
 		return 0;
 		return 0;
 	}
 	}