Attached is a patch to usb-storage. It's 11Kb compressed, but it's
deceptively large. It's against 2.3.99-pre4-3. Randy -- please apply.
This patch addresses the following issues:
(o) Removed spinlocks and replaced them with semaphores. Performance be
damned, but I know this is right.
(o) Fixed us_transfer_length() to give a more accurate result
(o) Removed some common code from protocol handlers to deal with error
handling. Simultaneously made all this code correct, at least as far
as I can test, for all protocol/transport combinations.
(o) Updated IRQ callback to reduce number of "unwated interrupt" messages.
Note that this exposed an HCD difference. See my earlier e-mail about
this -- I consider this something that _really_ should be fixed.
(o) Moved transport functions to earlier in the file. This accounts for
much of the size of this patch, but has little effect other than to
group things a bit better and prevent the need for another prototype.
(o) Changed the way some data structures were accessed. This prevents an
extra pointer dereference, and could improve performance on some
systems.
(o) Cleaned up module exit code. We're now freeing more data structures.
This should mean that all of them are getting freed.
(o) Changed the names of the /proc/scsi/ entry and the control thread to
be more descriptive and easier to read.
(o) Added some more info to the /proc/scsi/usb-storage-N/ files
(o) Enabled multi-LUN device support. Note that there are some devices
which respond to all LUNs. This is actually a device fault. To work
around these devices, change your SCSI settings to not probe all LUNs.
(o) Added a flag that will be used to setup some buggy devices
There was a net reduction in the number of FIXMEs of about 11.
Okay, so maybe this patch isn't so deceptively large. :)
Matt Dharm
--
Matthew Dharm Home: [EMAIL PROTECTED]
Engineer, Qualcomm, Inc. Work: [EMAIL PROTECTED]
G: Let me guess, you started on the 'net with AOL, right?
C: WOW! d00d! U r leet!
-- Greg and Customer
User Friendly, 2/12/1999
pre4-3.patch.gz
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]