Subject: Re: skge error; hangs w/ hardware memory hole

From: Andi Kleen <[email-masked]>
Date: Tue, 25 Jul 2006 04:35:05 +0200

On Sunday 23 July 2006 08:32, Anthony DeRobertis wrote:
> Andreas Kleen wrote:
> 
> > 
> > You need to use iommu=soft swiotlb=force
> > 
> > The standard IOMMU is also broken on VIA, but forced swiotlb should
> > work.
> 
> Didn't work :-(

swiotlb=force is unfortunately broken right now. 

But which this patch it should work. Does it?

-Andi

Test patch only: disable DMA over 4GB

Index: linux-2.6.17-work/arch/x86_64/kernel/pci-dma.c
===================================================================
--- linux-2.6.17-work.orig/arch/x86_64/kernel/pci-dma.c
+++ linux-2.6.17-work/arch/x86_64/kernel/pci-dma.c
@@ -202,7 +202,7 @@ int dma_set_mask(struct device *dev, u64
 {
 	if (!dev->dma_mask || !dma_supported(dev, mask))
 		return -EIO;
-	*dev->dma_mask = mask;
+	*dev->dma_mask = mask & 0xffffffff;
 	return 0;
 }
 EXPORT_SYMBOL(dma_set_mask);