rpms/kernel/F-13 ibmvscsi-fix-DMA-API-misuse.patch, NONE, 1.1 kernel.spec, 1.2015, 1.2016

Kyle McMartin kyle at fedoraproject.org
Tue May 4 14:01:08 UTC 2010


Author: kyle

Update of /cvs/pkgs/rpms/kernel/F-13
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv9219

Modified Files:
	kernel.spec 
Added Files:
	ibmvscsi-fix-DMA-API-misuse.patch 
Log Message:
* Tue May 4 2010 Kyle McMartin <kyle at redhat.com> 2.6.33.3-80
- ibmvscsi-fix-DMA-API-misuse.patch (#579454)


ibmvscsi-fix-DMA-API-misuse.patch:
 ibmvscsi.c |   30 ++----------------------------
 1 file changed, 2 insertions(+), 28 deletions(-)

--- NEW FILE ibmvscsi-fix-DMA-API-misuse.patch ---
>From b395ecef0de15c10459856e56a590ac1fe16be76 Mon Sep 17 00:00:00 2001
From: FUJITA Tomonori <fujita.tomonori at lab.ntt.co.jp>
Date: Fri, 2 Apr 2010 15:50:24 +0900
Subject: [SCSI] ibmvscsi: fix DMA API misuse

ibmvscsi uses dma_unmap_single() for buffers mapped via
dma_map_sg(). It works however it's the API violation. The DMA debug
facility complains about it:

http://marc.info/?l=linux-scsi&m=127018555013151&w=2

Reported-by: Sachin Sant <sachinp at in.ibm.com>
Tested-by: Sachin Sant <sachinp at in.ibm.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori at lab.ntt.co.jp>
Signed-off-by: James Bottomley <James.Bottomley at suse.de>

(cherry picked from a71fa1fc43a29133f13ae6ada1a389ca298c0934)
---
 drivers/scsi/ibmvscsi/ibmvscsi.c |   29 ++---------------------------
 1 files changed, 2 insertions(+), 27 deletions(-)

diff --git a/drivers/scsi/ibmvscsi/ibmvscsi.c b/drivers/scsi/ibmvscsi/ibmvscsi.c
index e475b79..3b14bbe 100644
--- a/drivers/scsi/ibmvscsi/ibmvscsi.c
+++ b/drivers/scsi/ibmvscsi/ibmvscsi.c
@@ -321,16 +321,6 @@ static void set_srp_direction(struct scsi_cmnd *cmd,
 		srp_cmd->buf_fmt = fmt;
 }
 
-static void unmap_sg_list(int num_entries,
-		struct device *dev,
-		struct srp_direct_buf *md)
-{
-	int i;
-
-	for (i = 0; i < num_entries; ++i)
-		dma_unmap_single(dev, md[i].va, md[i].len, DMA_BIDIRECTIONAL);
-}
-
 /**
  * unmap_cmd_data: - Unmap data pointed in srp_cmd based on the format
  * @cmd:	srp_cmd whose additional_data member will be unmapped
@@ -348,24 +338,9 @@ static void unmap_cmd_data(struct srp_cmd *cmd,
 
 	if (out_fmt == SRP_NO_DATA_DESC && in_fmt == SRP_NO_DATA_DESC)
 		return;
-	else if (out_fmt == SRP_DATA_DESC_DIRECT ||
-		 in_fmt == SRP_DATA_DESC_DIRECT) {
-		struct srp_direct_buf *data =
-			(struct srp_direct_buf *) cmd->add_data;
-		dma_unmap_single(dev, data->va, data->len, DMA_BIDIRECTIONAL);
-	} else {
-		struct srp_indirect_buf *indirect =
-			(struct srp_indirect_buf *) cmd->add_data;
-		int num_mapped = indirect->table_desc.len /
-			sizeof(struct srp_direct_buf);
 
-		if (num_mapped <= MAX_INDIRECT_BUFS) {
-			unmap_sg_list(num_mapped, dev, &indirect->desc_list[0]);
-			return;
-		}
-
-		unmap_sg_list(num_mapped, dev, evt_struct->ext_list);
-	}
+	if (evt_struct->cmnd)
+		scsi_dma_unmap(evt_struct->cmnd);
 }
 
 static int map_sg_list(struct scsi_cmnd *cmd, int nseg,
-- 
1.7.0.1



Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-13/kernel.spec,v
retrieving revision 1.2015
retrieving revision 1.2016
diff -u -p -r1.2015 -r1.2016
--- kernel.spec	3 May 2010 21:16:31 -0000	1.2015
+++ kernel.spec	4 May 2010 14:01:08 -0000	1.2016
@@ -839,6 +839,8 @@ Patch12800: revert-ath9k_-fix-lockdep-wa
 # ath9k: reorder ieee80211_free_hw behind ath9k_uninit_hw to avoid oops
 Patch12810: ath9k-reorder-ieee80211_free_hw-behind-ath9k_uninit_.patch
 
+Patch12820: ibmvscsi-fix-DMA-API-misuse.patch
+
 %endif
 
 BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
@@ -1528,6 +1530,8 @@ ApplyPatch revert-ath9k_-fix-lockdep-war
 # ath9k: reorder ieee80211_free_hw behind ath9k_uninit_hw to avoid oops
 ApplyPatch ath9k-reorder-ieee80211_free_hw-behind-ath9k_uninit_.patch
 
+ApplyPatch ibmvscsi-fix-DMA-API-misuse.patch
+
 # END OF PATCH APPLICATIONS
 
 %endif
@@ -2177,6 +2181,9 @@ fi
 # and build.
 
 %changelog
+* Tue May 4 2010 Kyle McMartin <kyle at redhat.com> 2.6.33.3-80
+- ibmvscsi-fix-DMA-API-misuse.patch (#579454)
+
 * Mon May 3 2010 Kyle McMartin <kyle at redhat.com> 2.6.33.3-79
 - disable aesni. (#571577)
 



More information about the scm-commits mailing list