This is a patch against the 2.5 usb-storage tree. Greg, please apply. The purpose of this patch is to trap all commands which have a bogus request_bufflen. Much logic is devoted to calculating the proper length of the transfer, but according to discussions I've had on linux-scsi, this is really a bug in whatever is originating the bad command.
Hopefully, after people use this patch for a while, we'll eliminate all the
offending sources and can remove quite a bit of logic from the driver.
Matt
# This is a BitKeeper generated patch for the following project:
# Project Name: greg k-h's linux 2.5 USB kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
# ChangeSet 1.592 -> 1.593
# drivers/usb/storage/transport.c 1.34 -> 1.35
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/07/13 [EMAIL PROTECTED] 1.593
# Catch all cases of commands which have bad request_bufflen fields.
# Bad is defined, in this case, to mean the command requests a different
# (usually smaller) amount of data.
# --------------------------------------------
#
diff -Nru a/drivers/usb/storage/transport.c b/drivers/usb/storage/transport.c
--- a/drivers/usb/storage/transport.c Sat Jul 13 17:28:34 2002
+++ b/drivers/usb/storage/transport.c Sat Jul 13 17:28:34 2002
@@ -344,6 +344,12 @@
len = srb->request_bufflen;
}
+ /* According to the linux-scsi people, any command sent which
+ * violates this invariant is a bug. In the hopes of removing
+ * all the complex logic above, let's find them and eliminate them.
+ */
+ BUG_ON(len != srb->request_bufflen);
+
return len;
}
--
Matthew Dharm Home: [EMAIL PROTECTED]
Maintainer, Linux USB Mass Storage Driver
G: Money isn't everything, A.J.
AJ: Who convinced you of that?
G: The Chief, at my last salary review.
-- Mike and Greg
User Friendly, 11/3/1998
msg07751/pgp00000.pgp
Description: PGP signature
