On Fri, 11 Mar 2005, Nick Sillik wrote: > I'm resubmitting the patch with the wrap removed and the list in the onetouch > struct. I also changed usb_unlink_urb usb_kill_urb.
> +int onetouch_release_input(struct us_data *ss) <...> > + usb_unlink_urb(onetouch->irq); Should be usb_kill_urb again. > + input_unregister_device(&onetouch->dev); > + usb_free_urb(onetouch->irq); > + usb_buffer_free(onetouch->udev, ONETOUCH_PKT_LEN, > + onetouch->data, onetouch->data_dma); > + kfree(onetouch); I'm not too familiar with the input layer. Can't this code run while a user still has the input device file open? If it does, what will happen when the user later closes the device file and onetouch_close tries to dereference a pointer to deallocated memory? In usb.c:usb_stor_release_resources(): > + /* Attempt to connect the onetouch urb to the device */ > + /* Note: If the CONFIG_USB_STORAGE_ONETOUCH is not set */ > + /* onetouch_connect_input(us) will always return 0 */ > + switch (onetouch_connect_input(us)) { > + case 0: > + break; > + default: > + printk(KERN_WARNING USB_STORAGE > + "Unable to allocate onetouch urb\n"); > + } > + > /* Kill the control thread. The SCSI host must already have been > * removed so it won't try to queue any more commands. > */ Looks like you cut & pasted instead of writing the correct code here. Alan Stern ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel