Hey Dan, Looks like you forgot to free StringDesc: > --- orig/drivers/usb/serial/io_edgeport.c 2009-12-30 16:20:35.000000000 +0200 > +++ devel/drivers/usb/serial/io_edgeport.c 2009-12-30 16:25:27.000000000 +0200 > @@ -372,21 +372,24 @@ static void update_edgeport_E2PROM(struc > ************************************************************************/ > static int get_string(struct usb_device *dev, int Id, char *string, int buflen) > { > - struct usb_string_descriptor StringDesc; > + struct usb_string_descriptor *StringDesc; > struct usb_string_descriptor *pStringDesc; > > dbg("%s - USB String ID = %d", __func__, Id); > > + StringDesc = kmalloc(sizeof(*StringDesc), GFP_KERNEL); > + if (!StringDesc) > + return 0; > if (!usb_get_descriptor(dev, USB_DT_STRING, Id, > - &StringDesc, sizeof(StringDesc))) > + StringDesc, sizeof(*StringDesc))) here > return 0; > > - pStringDesc = kmalloc(StringDesc.bLength, GFP_KERNEL); > + pStringDesc = kmalloc(StringDesc->bLength, GFP_KERNEL); > if (!pStringDesc) here > return 0; > > if (!usb_get_descriptor(dev, USB_DT_STRING, Id, > - pStringDesc, StringDesc.bLength)) { > + pStringDesc, StringDesc->bLength)) { here > kfree(pStringDesc); > return 0; > } and here. Thanks, Johan -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html