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