[PATCH] x86-64: pci-gart iommu sg chaining zeroes wrong sg.

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: <jens.axboe@...>
Cc: <linux-kernel@...>, <linux-scsi@...>, <fujita.tomonori@...>
Date: Thursday, September 27, 2007 - 12:38 pm

This patch is for Jens' block tree (sg chaining branch).

I don't have the hardware but this looks like a bug.

---
From: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Subject: [PATCH] x86-64: pci-gart iommu sg chaining zeroes a wrong sg's dma_length

Needs to zero the end of the list.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
---
 arch/x86_64/kernel/pci-gart.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/arch/x86_64/kernel/pci-gart.c b/arch/x86_64/kernel/pci-gart.c
index 27b7db4..a4151a7 100644
--- a/arch/x86_64/kernel/pci-gart.c
+++ b/arch/x86_64/kernel/pci-gart.c
@@ -425,9 +425,10 @@ int gart_map_sg(struct device *dev, struct scatterlist *sg, int nents, int dir)
 	if (dma_map_cont(start_sg, i - start, sgmap, pages, need) < 0)
 		goto error;
 	out++;
+	sgmap = sg_next(sgmap);
 	flush_gart();
 	if (out < nents)
-		ps->dma_length = 0;
+		sgmap->dma_length = 0;
 	return out;
 
 error:
-- 
1.5.2.4

-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH] x86-64: pci-gart iommu sg chaining zeroes wrong sg., FUJITA Tomonori, (Thu Sep 27, 12:38 pm)