Hi!
These are minor renaming (to maintain some consistency between names
in structure and function names - so that proto_handler from ATAPI is
called ATAPI_proto, not ATAPI_command).
I did no real changes, but code now looks better to me. Please apply.
Pavel
--- usb-storage.c.ofic Fri Mar 31 23:12:25 2000
+++ usb-storage.c Sat Apr 1 21:31:55 2000
@@ -1,7 +1,10 @@
/* Driver for USB Mass Storage compliant devices
*
- * (c) 1999 Michael Gee ([EMAIL PROTECTED])
- * (c) 1999, 2000 Matthew Dharm ([EMAIL PROTECTED])
+ * Copyright 1999 Michael Gee <[EMAIL PROTECTED]>
+ * Copyright 1999, 2000 Matthew Dharm <[EMAIL PROTECTED]>
+ * Copyright 2000 Pavel Machek <[EMAIL PROTECTED]>
+ *
+ * Distribute under GPL version 2 or later, as in file ../../COPYING.
*
* This driver is based on the 'USB Mass Storage Class' document. This
* describes in detail the protocol used to communicate with such
@@ -288,7 +274,7 @@
* Protocol routines
***********************************************************************/
-static void ATAPI_command(Scsi_Cmnd *srb, struct us_data *us)
+static void ATAPI_proto(Scsi_Cmnd *srb, struct us_data *us)
{
int old_cmnd = 0;
int result;
@@ -427,7 +413,7 @@
}
-static void ufi_command(Scsi_Cmnd *srb, struct us_data *us)
+static void ufi_proto(Scsi_Cmnd *srb, struct us_data *us)
{
int old_cmnd = 0;
int result;
@@ -587,7 +573,7 @@
}
}
-static void transparent_scsi_command(Scsi_Cmnd *srb, struct us_data *us)
+static void scsi_proto(Scsi_Cmnd *srb, struct us_data *us)
{
unsigned int result = 0;
@@ -993,6 +979,9 @@
US_DEBUGP("Bulk command S 0x%x T 0x%x L %d F %d CL %d\n",
bcb.Signature, bcb.Tag, bcb.DataTransferLength,
bcb.Flags, bcb.Length);
+/* BUG BUG BUG!
+ We are calling schedule, but we are holding spinlock_irqsave!
+*/
result = usb_bulk_msg(us->pusb_dev, pipe, &bcb,
US_BULK_CB_WRAP_LEN, &partial, HZ*5);
US_DEBUGP("Bulk command transfer result=%d\n", result);
@@ -1613,14 +1602,11 @@
memset(prod, 0, sizeof(prod));
memset(serial, 0, sizeof(serial));
if (dev->descriptor.iManufacturer)
- usb_string(dev, dev->descriptor.iManufacturer, mf,
- sizeof(mf));
+ usb_string(dev, dev->descriptor.iManufacturer, mf, sizeof(mf));
if (dev->descriptor.iProduct)
- usb_string(dev, dev->descriptor.iProduct, prod,
- sizeof(prod));
+ usb_string(dev, dev->descriptor.iProduct, prod, sizeof(prod));
if (dev->descriptor.iSerialNumber)
- usb_string(dev, dev->descriptor.iSerialNumber, serial,
- sizeof(serial));
+ usb_string(dev, dev->descriptor.iSerialNumber, serial, sizeof(serial));
/* Create a GUID for this device */
if (dev->descriptor.iSerialNumber && serial[0]) {
@@ -1709,26 +1695,13 @@
*/
US_DEBUGP("Transport: ");
switch (ss->protocol) {
- case US_PR_CB:
- US_DEBUGPX("Control/Bulk\n");
- ss->transport = CB_transport;
- ss->transport_reset = CB_reset;
- break;
-
- case US_PR_CBI:
- US_DEBUGPX("Control/Bulk/Interrupt\n");
- ss->transport = CBI_transport;
- ss->transport_reset = CB_reset;
- break;
-
- case US_PR_BULK:
- US_DEBUGPX("Bulk\n");
- ss->transport = Bulk_transport;
- ss->transport_reset = Bulk_reset;
- break;
-
- default:
- US_DEBUGPX("Unknown\n");
+ case US_PR_CB: US_DEBUGPX("Control/Bulk\n");
+ ss->transport = CB_transport; ss->transport_reset =
+CB_reset; break;
+ case US_PR_CBI: US_DEBUGPX("Control/Bulk/Interrupt\n");
+ ss->transport = CBI_transport; ss->transport_reset =
+CB_reset; break;
+ case US_PR_BULK: US_DEBUGPX("Bulk\n");
+ ss->transport = Bulk_transport; ss->transport_reset =
+Bulk_reset; break;
+ default: US_DEBUGPX("Unknown\n");
kfree(ss);
return NULL;
break;
@@ -1736,38 +1709,13 @@
US_DEBUGP("Protocol: ");
switch (ss->subclass) {
- case US_SC_RBC:
- US_DEBUGPX("Reduced Block Commands (RBC)\n");
- ss->proto_handler = transparent_scsi_command;
- break;
-
- case US_SC_8020:
- US_DEBUGPX("8020i\n");
- ss->proto_handler = ATAPI_command;
- break;
-
- case US_SC_QIC:
- US_DEBUGPX("QIC157\n");
- break;
-
- case US_SC_8070:
- US_DEBUGPX("8070i\n");
- ss->proto_handler = ATAPI_command;
- break;
-
- case US_SC_SCSI:
- US_DEBUGPX("Transparent SCSI\n");
- ss->proto_handler = transparent_scsi_command;
- break;
-
- case US_SC_UFI:
- US_DEBUGPX("UFI\n");
- ss->proto_handler = ufi_command;
- break;
-
- default:
- US_DEBUGPX("Unknown\n");
- break;
+ case US_SC_RBC: US_DEBUGPX("Reduced Block Commands (RBC)\n");
+ss->proto_handler = scsi_proto; break;
+ case US_SC_8020: US_DEBUGPX("8020i\n");
+ss->proto_handler = ATAPI_proto; break;
+ case US_SC_QIC: US_DEBUGPX("QIC157\n");
+ss->proto_handler = NULL; break;
+ case US_SC_8070: US_DEBUGPX("8070i\n");
+ss->proto_handler = ATAPI_proto; break;
+ case US_SC_SCSI: US_DEBUGPX("Transparent SCSI\n");
+ss->proto_handler = scsi_proto; break;
+ case US_SC_UFI: US_DEBUGPX("UFI\n");
+ss->proto_handler = ufi_proto; break;
+ default: US_DEBUGPX("Unknown\n");
+ss->proto_handler = NULL; break;
}
if (ss->protocol == US_PR_CBI) {
@@ -1807,8 +1755,7 @@
CLONE_FS | CLONE_FILES |
CLONE_SIGHAND);
if (ss->pid < 0) {
- printk(KERN_WARNING USB_STORAGE
- "Unable to start control thread\n");
+ printk(KERN_ERR USB_STORAGE "Unable to start control
+thread\n");
kfree(ss);
return NULL;
}
@@ -1828,10 +1775,8 @@
/* release the data structure lock */
spin_unlock_irqrestore(&us_list_spinlock, flags);
- printk(KERN_DEBUG
- "WARNING: USB Mass Storage data integrity not assured\n");
- printk(KERN_DEBUG
- "USB Mass Storage device found at %d\n", dev->devnum);
+ printk(KERN_DEBUG "WARNING: USB Mass Storage data integrity not assured\n");
+ printk(KERN_DEBUG "USB Mass Storage device found at %d\n", dev->devnum);
/* return a pointer for the disconnect function */
return ss;
--
I'm [EMAIL PROTECTED] "In my country we have almost anarchy and I don't care."
Panos Katsaloulis describing me w.r.t. patents me at [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]