[PATCH 2.4] Re: ide-dma bug (cache flushing)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



It seems like this problem is (yet again) caused by lack of cache flushing.
The attached patch adds a  dma_cache_wback_inv to pci_map_sg in pci.h
to the if fork in which sg->address is not set.

This fixes my problem.

Can someone with commit access please apply this patch?

/Brian
Index: include/asm-mips/pci.h
===================================================================
RCS file: /cvs/linux-mips/include/asm-mips/pci.h,v
retrieving revision 1.1.1.2
diff -u -r1.1.1.2 pci.h
--- include/asm-mips/pci.h	19 Aug 2002 18:00:29 -0000	1.1.1.2
+++ include/asm-mips/pci.h	12 Sep 2002 20:06:31 -0000
@@ -200,9 +200,13 @@
 			dma_cache_wback_inv((unsigned long)sg->address,
 			                    sg->length);
 			sg->dma_address = bus_to_baddr(hwdev, __pa(sg->address));
-		} else
+		} else {
 			sg->dma_address = page_to_bus(sg->page) +
 			                  sg->offset;
+			dma_cache_wback_inv(
+				(unsigned long)(page_address(sg->page)+
+						sg->offset), sg->length);
+		}
 	}
 
 	return nents;

[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux