Am Montag, 7. Juli 2003 07:14 schrieb Greg KH:
> On Sun, Jul 06, 2003 at 08:01:15PM +0200, Fr�d�ric JOUAULT wrote:
> > Hi,
> > 
> > Can someone add a link to http://go.lamarinapunto.com in the "Device 
> > Driver Support" page?
> 
> Any reason you don't submit this driver for inclusion in the main kernel
> trees?

It should get some fixes first:

1. static int w9968cf_allocate_memory(struct w9968cf_device* cam)
leaking memory in the error case

2. static int
w9968cf_proc_read_main(char* page, char** start, off_t offset,
                       int count, int* eof, void* data)
This line:
        for (ptr = list->next; ptr != list; ptr = ptr->next, ncams++);
Needs to hold a lock for list traversal. As does the next run in the same
function.

3. w9968cf_urb_complete(struct urb *urb, struct pt_regs *regs)
The handling of wait queues looks quite fishy.
In particular, it looks racy and how do you know that there's
just one active queue?

4. static int
w9968cf_start_transfer(struct w9968cf_device* cam)
Here:
        err = usb_submit_urb(urb, GFP_KERNEL);
Race condition. It must come last or you race with the completion handler.

5. static int w9968cf_stop_transfer(struct w9968cf_device* cam)
Sleeping with a spinlock held

But basically the driver is well written.

        Regards
                Oliver



-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100006ave/direct;at.asp_061203_01/01
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to