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

rpms/kernel/FC-4 linux-2.6-usbmon-deficiency-workaround.patch, NONE, 1.1 kernel-2.6.spec, 1.1393, 1.1394



Author: davej

Update of /cvs/dist/rpms/kernel/FC-4
In directory cvs.devel.redhat.com:/tmp/cvs-serv7752

Modified Files:
	kernel-2.6.spec 
Added Files:
	linux-2.6-usbmon-deficiency-workaround.patch 
Log Message:
Work around a usbmon deficiency.



linux-2.6-usbmon-deficiency-workaround.patch:
 transport.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

--- NEW FILE linux-2.6-usbmon-deficiency-workaround.patch ---

We have usbmon enabled now and it's good, but usb-storage moved away
from under me a little bit. It now maps everything for DMA beforehand,
which makes usbmon to miss the SCSI commands and replies.

I am going to address this problem in usbmon, where it belongs, but
it requires some work which is not done.

What do you think about carrying the attached patch for a few months
(I hope to turn around sooner, but you know how that works!)

-- Pete

diff -urp -X dontdiff linux-2.6.12/drivers/usb/storage/transport.c linux-2.6.12-lem/drivers/usb/storage/transport.c
--- linux-2.6.12/drivers/usb/storage/transport.c	2005-06-21 12:58:48.000000000 -0700
+++ linux-2.6.12-lem/drivers/usb/storage/transport.c	2005-07-06 14:00:30.000000000 -0700
@@ -948,8 +948,9 @@ int usb_stor_Bulk_max_lun(struct us_data
 
 int usb_stor_Bulk_transport(struct scsi_cmnd *srb, struct us_data *us)
 {
-	struct bulk_cb_wrap *bcb = (struct bulk_cb_wrap *) us->iobuf;
-	struct bulk_cs_wrap *bcs = (struct bulk_cs_wrap *) us->iobuf;
+	/* Offset into iobuf a little in order to defeat pre-set DMA */
+	struct bulk_cb_wrap *bcb = (struct bulk_cb_wrap *) (us->iobuf + 4);
+	struct bulk_cs_wrap *bcs = (struct bulk_cs_wrap *) (us->iobuf + 4);
 	unsigned int transfer_length = srb->request_bufflen;
 	unsigned int residue;
 	int result;
@@ -960,7 +961,7 @@ int usb_stor_Bulk_transport(struct scsi_
 	/* Take care of BULK32 devices; set extra byte to 0 */
 	if ( unlikely(us->flags & US_FL_BULK32)) {
 		cbwlen = 32;
-		us->iobuf[31] = 0;
+		((unsigned char *)bcb)[31] = 0;
 	}
 
 	/* set up the command wrapper */



Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel/FC-4/kernel-2.6.spec,v
retrieving revision 1.1393
retrieving revision 1.1394
diff -u -r1.1393 -r1.1394
--- kernel-2.6.spec	12 Jul 2005 20:49:09 -0000	1.1393
+++ kernel-2.6.spec	12 Jul 2005 20:53:12 -0000	1.1394
@@ -312,6 +312,7 @@
 Patch1400: linux-2.6.12-usb-old_scheme_first.patch
 Patch1401: linux-2.6.12-rc3-ehci-misc-updates.patch
 Patch1402: linux-2.6.11-random-ehci-patch.patch
+Patch1403: linux-2.6-usbmon-deficiency-workaround.patch
 
 # Netdump and Diskdump bits.
 Patch1500: linux-2.6.10-crashdump-common.patch
@@ -736,6 +737,7 @@
 #%patch1401 -p1
 # Do something else originally described as "Alan's hint for ehci"
 %patch1402 -p1
+%patch1403 -p1
 
 # netdump bits
 %patch1500 -p1
@@ -1263,6 +1265,7 @@
 * Tue Jul 12 2005 Dave Jones <davej redhat com>
 - Fix up several reports of CD's causing crashes.
 - Make -p port arg of rpc.nfsd work.
+- Work around a usbmon deficiency.
 
 * Mon Jul 11 2005 Dave Jones <davej redhat com>
 - Fix up locking in piix IDE driver whilst tuning chipset.


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