diff options
author | Anton Blanchard <anton@samba.org> | 2005-09-23 00:44:04 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-09-23 01:17:35 -0400 |
commit | 586a90eb4c0b512df766e08a7718af7c6b9b2dcf (patch) | |
tree | 0472f79c20c605141abf4790faa4cbc4e41f8fd2 /arch/ppc64 | |
parent | 275abf5b06676ca057cf3e15f0d027eafcb204a0 (diff) |
[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: Anton Blanchard <anton@samba.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/ppc64')
-rw-r--r-- | arch/ppc64/kernel/pSeries_iommu.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/arch/ppc64/kernel/pSeries_iommu.c b/arch/ppc64/kernel/pSeries_iommu.c index 8c6313e7e145..25d6c7eebfd0 100644 --- a/arch/ppc64/kernel/pSeries_iommu.c +++ b/arch/ppc64/kernel/pSeries_iommu.c | |||
@@ -525,9 +525,8 @@ static void iommu_dev_setup_pSeriesLP(struct pci_dev *dev) | |||
525 | * slots on POWER4 machines. | 525 | * slots on POWER4 machines. |
526 | */ | 526 | */ |
527 | if (dma_window == NULL || pdn->parent == NULL) { | 527 | if (dma_window == NULL || pdn->parent == NULL) { |
528 | /* Fall back to regular (non-LPAR) dev setup */ | 528 | DBG("No dma window for device, linking to parent\n"); |
529 | DBG("No dma window for device, falling back to regular setup\n"); | 529 | PCI_DN(dn)->iommu_table = PCI_DN(pdn)->iommu_table; |
530 | iommu_dev_setup_pSeries(dev); | ||
531 | return; | 530 | return; |
532 | } else { | 531 | } else { |
533 | DBG("Found DMA window, allocating table\n"); | 532 | DBG("Found DMA window, allocating table\n"); |