[Linux-ia64] Bug in sba_iommu.c (2.5.64)

From: Peter Chubb <peter_at_chubb.wattle.id.au>
Date: 2003-04-01 14:39:21
OK, thanks to some inspired debugging work by Matthew Chapman, we now
have the error.   sba_map_sg() was passing the uninitialised  dma
address from the sg-list to sba_map_single() instead of the virtual
address.  This meant that the dma when it happened scribbled over
random memory causing an MCA later, or possibly caused an MCA immediately.

Patch against 2.5.64 appended.


===== linux-userdrivers/arch/ia64/hp/common/sba_iommu.c 1.10 vs edited =====
--- 1.10/arch/ia64/hp/common/sba_iommu.c	Wed Feb  5 12:06:01 2003
+++ edited/arch/ia64/hp/common/sba_iommu.c	Tue Apr  1 14:31:50 2003
@@ -1119,7 +1119,7 @@
 	/* Fast path single entry scatterlists. */
 	if (nents == 1) {
 		sba_sg_iova(sglist) = sba_map_single(dev,
-						     (void *) sba_sg_iova(sglist),
+						     (void *)sba_sg_address(sglist),
 						     sba_sg_len(sglist), direction);
 		sba_sg_iova_len(sglist) = sba_sg_len(sglist);
 #ifdef CONFIG_PROC_FS
Received on Mon Mar 31 20:45:50 2003

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:13 EST