Commit 586a90eb authored by Anton Blanchard's avatar Anton Blanchard Committed by Linus Torvalds

[PATCH] ppc64: Fix LPAR regression

The recent iommu fix broke booting on some POWER4 and POWER5 LPAR boxes.

It looks like we have been calling the non LPAR iommu_dev_setup on LPAR
machines for a while. The recent iommu fix caused that code path to
fail.

It looks like we just need to hook up the devices iommu_table to the
parents one, so do that instead of calling iommu_dev_setup_pSeries and
crossing the streams.
Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 275abf5b
...@@ -525,9 +525,8 @@ static void iommu_dev_setup_pSeriesLP(struct pci_dev *dev) ...@@ -525,9 +525,8 @@ static void iommu_dev_setup_pSeriesLP(struct pci_dev *dev)
* slots on POWER4 machines. * slots on POWER4 machines.
*/ */
if (dma_window == NULL || pdn->parent == NULL) { if (dma_window == NULL || pdn->parent == NULL) {
/* Fall back to regular (non-LPAR) dev setup */ DBG("No dma window for device, linking to parent\n");
DBG("No dma window for device, falling back to regular setup\n"); PCI_DN(dn)->iommu_table = PCI_DN(pdn)->iommu_table;
iommu_dev_setup_pSeries(dev);
return; return;
} else { } else {
DBG("Found DMA window, allocating table\n"); DBG("Found DMA window, allocating table\n");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment