Subject: [PATCH] [POWERPC] Set dma_data correctly for direct_ops on pasemi

From: Olof Johansson <[email-masked]>
Date: Thu, 31 Jan 2008 00:41:30 -0600

More late-caught fallout from the mainline merge. The patch:

[POWERPC] Use archdata.dma_data in dma_direct_ops and add the offset

"Now that all platforms using dma_direct_offset setup the
archdata.dma_data correctly, ..."

Nope -- the pasemi iommu setup code that disables translation on the
DMA pci device didn't set dma_data correctly.

The below patch is needed, please merge as soon as practical. Thanks!

Signed-off-by: Olof Johansson <[email-masked]>

diff --git a/arch/powerpc/platforms/pasemi/iommu.c b/arch/powerpc/platforms/pasemi/iommu.c
index 9916a0f..c5cfd4b 100644
--- a/arch/powerpc/platforms/pasemi/iommu.c
+++ b/arch/powerpc/platforms/pasemi/iommu.c
@@ -182,8 +182,10 @@ static void pci_dma_dev_setup_pasemi(struct pci_dev *dev)
 	 * CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE at build time.
 	 */
 	if (dev->vendor == 0x1959 && dev->device == 0xa007 &&
-	    !firmware_has_feature(FW_FEATURE_LPAR))
+	    !firmware_has_feature(FW_FEATURE_LPAR)) {
 		dev->dev.archdata.dma_ops = &dma_direct_ops;
+		dev->dev.archdata.dma_data = 0;
+	}
 #endif
 
 	dev->dev.archdata.dma_data = &iommu_table_iobmap;