From: Olof Johansson With current firmware, the ibm,my-dma-window property now contains two panes for VSCSI server nodes. This breaks the current tests in the setup code. There's a bunch of references to pre-GA firmware bugs. That's a while ago, so we can remove the workarounds without breaking anyone. Signed-off-by: Olof Johansson Signed-off-by: Andrew Morton --- 25-akpm/arch/ppc64/kernel/vio.c | 19 +------------------ 1 files changed, 1 insertion(+), 18 deletions(-) diff -puN arch/ppc64/kernel/vio.c~ppc64-vio-iommu-table-property-parsing-wrong arch/ppc64/kernel/vio.c --- 25/arch/ppc64/kernel/vio.c~ppc64-vio-iommu-table-property-parsing-wrong 2004-11-03 18:55:40.392534264 -0800 +++ 25-akpm/arch/ppc64/kernel/vio.c 2004-11-03 18:55:40.395533808 -0800 @@ -521,24 +521,7 @@ static struct iommu_table * vio_build_io newTceTable = (struct iommu_table *) kmalloc(sizeof(struct iommu_table), GFP_KERNEL); - /* RPA docs say that #address-cells is always 1 for virtual - devices, but some older boxes' OF returns 2. This should - be removed by GA, unless there is legacy OFs that still - have 2 for #address-cells */ - size = ((dma_window[1+vio_num_address_cells] >> PAGE_SHIFT) << 3) - >> PAGE_SHIFT; - - /* This is just an ugly kludge. Remove as soon as the OF for all - machines actually follow the spec and encodes the offset field - as phys-encode (that is, #address-cells wide)*/ - if (dma_window_property_size == 12) { - size = ((dma_window[1] >> PAGE_SHIFT) << 3) >> PAGE_SHIFT; - } else if (dma_window_property_size == 20) { - size = ((dma_window[4] >> PAGE_SHIFT) << 3) >> PAGE_SHIFT; - } else { - printk(KERN_WARNING "vio_build_iommu_table: Invalid size of ibm,my-dma-window=%i, using 0x80 for size\n", dma_window_property_size); - size = 0x80; - } + size = ((dma_window[4] >> PAGE_SHIFT) << 3) >> PAGE_SHIFT; /* There should be some code to extract the phys-encoded offset using prom_n_addr_cells(). However, according to a comment _