aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ppc64
diff options
context:
space:
mode:
authorAnton Blanchard <anton@samba.org>2005-09-22 21:44:04 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2005-09-22 22:17:35 -0700
commit586a90eb4c0b512df766e08a7718af7c6b9b2dcf (patch)
tree0472f79c20c605141abf4790faa4cbc4e41f8fd2 /arch/ppc64
parent275abf5b06676ca057cf3e15f0d027eafcb204a0 (diff)
downloadkernel_samsung_crespo-586a90eb4c0b512df766e08a7718af7c6b9b2dcf.zip
kernel_samsung_crespo-586a90eb4c0b512df766e08a7718af7c6b9b2dcf.tar.gz
kernel_samsung_crespo-586a90eb4c0b512df766e08a7718af7c6b9b2dcf.tar.bz2
[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.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/arch/ppc64/kernel/pSeries_iommu.c b/arch/ppc64/kernel/pSeries_iommu.c
index 8c6313e..25d6c7e 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)
* slots on POWER4 machines.
*/
if (dma_window == NULL || pdn->parent == NULL) {
- /* Fall back to regular (non-LPAR) dev setup */
- DBG("No dma window for device, falling back to regular setup\n");
- iommu_dev_setup_pSeries(dev);
+ DBG("No dma window for device, linking to parent\n");
+ PCI_DN(dn)->iommu_table = PCI_DN(pdn)->iommu_table;
return;
} else {
DBG("Found DMA window, allocating table\n");