On Wed, 7 Apr 2004 07:29:45 +0200 Luca Risolia <[EMAIL PROTECTED]> wrote:
> down(&cam->dev_sem); > + /* Recheck: there may be several waiters */ > + if (cam->users) > + goto sleep; > } Hmm. Why not this: --- linux-2.4.26-rc1/drivers/usb/w9968cf.c 2004-02-26 14:09:59.000000000 -0800 +++ linux-2.4.26-rc1-nip/drivers/usb/w9968cf.c 2004-04-07 15:15:40.000000000 -0700 @@ -2943,7 +2943,7 @@ return -ENODEV; } - if (cam->users) { + while (cam->users) { DBG(2, "%s (/dev/video%d) has been already occupied by '%s'.", symbolic(camlist, cam->id),cam->v4ldev->minor,cam->command) if ((filp->f_flags & O_NONBLOCK)||(filp->f_flags & O_NDELAY)) { @@ -3632,7 +3632,7 @@ if (copy_from_user(&tuner, arg, sizeof(tuner))) return -EFAULT; - if (tuner.tuner != 0); + if (tuner.tuner != 0) return -EINVAL; strcpy(tuner.name, "no_tuner"); ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel