On Fri, Jan 04, 2002 at 03:31:12PM +0100, Peter Osterlund wrote: > Greg KH <[EMAIL PROTECTED]> writes: > > First off, the usb-storage driver doesn't seem to work properly in > > 2.5.2-pre6 due to the bio and scsi changes happening. Have you got it > > to work? > > Yes, it does work with the patch I sent previously. The only problem > is that my patch will stop working again sometime in the future, when > the .address field is removed from struct scatterlist.
Ah, nice to know :) > I think my device rapidly disappeared/reappeared and disappeared again > on the bus, but I don't know for sure, because I didn't have serial > console logging active at the time, and I can not repeat the problem. > > Anyway, if (header->bLength < 2) is true in usb_parse_interface (line > 1546), the endpoint, extra and extralen fields will never be > initialized. This will lead to either corruption or a memory leak when > usb_destroy_configuration is called. Therefore I think this patch is > correct. Good catch. How about this patch instead which removes a bit of the same logic elsewhere: diff -Nru a/drivers/usb/usb.c b/drivers/usb/usb.c --- a/drivers/usb/usb.c Fri Jan 4 13:05:08 2002 +++ b/drivers/usb/usb.c Fri Jan 4 13:05:08 2002 @@ -1535,6 +1535,9 @@ } ifp = interface->altsetting + interface->num_altsetting; + ifp->endpoint = NULL; + ifp->extra = NULL; + ifp->extralen = 0; interface->num_altsetting++; memcpy(ifp, buffer, USB_DT_INTERFACE_SIZE); @@ -1576,10 +1579,7 @@ /* Copy any unknown descriptors into a storage area for */ /* drivers to later parse */ len = (int)(buffer - begin); - if (!len) { - ifp->extra = NULL; - ifp->extralen = 0; - } else { + if (len) { ifp->extra = kmalloc(len, GFP_KERNEL); if (!ifp->extra) { > Also, while analyzing this problem, I found a bug in usb-uhci.c. If > the uhci_start_usb call fails in alloc_uhci, line 3004, > uhci_pci_remove will oops, because the pci private data has not been > initialized, so uhci_t *s will be zero, and s->bus will oops. Here is > a patch to fix this bug: Any of the usb-uhci authors want to say if this is a good fix or not? thanks, greg k-h _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel