Am Sonntag, 15. Mai 2005 15:41 schrieb Gabriele Giacone:
> This is a patch against a mISDN patched 2.6.10 kernel.
> I had also CCed i4l developers list but posts by non-members must be
> approved by moderator Karsten Keil.
+static void trust_disconnect(struct usb_interface *interface)
+{
+ trustusb *dev;
+
+ /* prevent skel_open() from racing skel_disconnect() */
+ lock_kernel();
+
+ dev = usb_get_intfdata (interface);
+ usb_set_intfdata (interface, NULL);
1. What are you locking against?
2. It should call usb_kill_urb() on all URBs
In
+static int __devinit trust_probe(struct usb_interface *interface, const struct
usb_device_id *id)
1. Remove devinit
+ if ((!dev->int01_in_endpointAddr) ||
+ (!dev->int02_in_endpointAddr) ||
+ (!dev->isoc_out_endpointAddr)) {
+ dbg("%s: Unexpected endpoints configuration",
__FUNCTION__);
+ return -ENODEV;
+ }
2. Memory leak if you find only ISO endpoints
+ /* Clearing endpoint int02_in */
+ ret=usb_clear_halt(dev->udev, usb_rcvintpipe(dev->udev,
dev->int02_in_endpointAddr));
3. Why?
+ ret=usb_submit_urb(dev->int02_in_urb, GFP_ATOMIC);
+dbg("%s: usb_submit_urb: status = %d", __FUNCTION__, ret);
+dbg_urb(dev->int02_in_urb);
4. May be GFP_KERNEL
5. No error checking
+ trust_table[0] = dev;
6. Why have a table if only one is allowed?
+error:
+ trust_delete (dev);
+ return retval;
7. Memory leak
In
+static void trust_isoc_out_callback (struct urb *urb, struct pt_regs *regs)
1. This does a lot of work. Maybe better in a tasklet.
In
+static int __devinit setup_instance(trustusb *usbta)
1. Remove devinit
+ if (!(usbta->rx_buf = kmalloc(MAX_DFRAME_LEN_L1, GFP_ATOMIC))) {
2. GFP_KERNEL
+ if (!(usbta->rxbch_buf = kmalloc(MAX_DATA_MEM, GFP_ATOMIC))) {
+ err = -ENOMEM;
+ return (err);
3. GFP_KERNEL
4. Memory leak in error case
HTH
Oliver
-------------------------------------------------------
This SF.Net email is sponsored by Oracle Space Sweepstakes
Want to be the first software developer in space?
Enter now for the Oracle Space Sweepstakes!
http://ads.osdn.com/?ad_id=7393&alloc_id=16281&op=click
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel