[PATCH] x86_64: Don't warn for overflow in nommu case when dma_mask is < 32bit
authorAndi Kleen <ak@suse.de>
Mon, 15 May 2006 16:19:38 +0000 (18:19 +0200)
committerLinus Torvalds <torvalds@g5.osdl.org>
Tue, 16 May 2006 14:59:31 +0000 (07:59 -0700)
This triggers for b44's 1GB DMA workaround which tries to map
first and then bounces.

The 32bit heuristic is reasonable because the IOMMU doesn't attempt
to handle < 32bit masks anyways.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/x86_64/kernel/pci-nommu.c

index 44adcc2d5e5be43299d8f640161c6ec50658c285..1f6ecc62061d9121633e53edf672dec81b2da7c3 100644 (file)
@@ -12,9 +12,10 @@ static int
 check_addr(char *name, struct device *hwdev, dma_addr_t bus, size_t size)
 {
         if (hwdev && bus + size > *hwdev->dma_mask) {
-               printk(KERN_ERR
-                   "nommu_%s: overflow %Lx+%lu of device mask %Lx\n",
-              name, (long long)bus, size, (long long)*hwdev->dma_mask);
+               if (*hwdev->dma_mask >= 0xffffffffULL)
+                       printk(KERN_ERR
+                           "nommu_%s: overflow %Lx+%lu of device mask %Lx\n",
+                               name, (long long)bus, size, (long long)*hwdev->dma_mask);
                return 0;
        }
        return 1;