On Fri, Aug 23, 2013 at 4:23 PM, Dan Carpenter <dan.carpenter@xxxxxxxxxx> wrote: > On Wed, Aug 21, 2013 at 09:48:38PM -0400, Lidza Louina wrote: >> -static int dgap_tty_ioctl(struct tty_struct *tty, struct file *file, unsigned int cmd, >> +static int dgap_tty_ioctl(struct tty_struct *tty, unsigned int cmd, >> unsigned long arg) > > Btw, now that this file compiles I see it in my static checker runs. > > dgap_tty_ioctl() takes a lock but always returns before unlocking. > >> { >> struct board_t *bd; >> @@ -3423,41 +3423,6 @@ static int dgap_tty_ioctl(struct tty_struct *tty, struct file *file, unsigned in >> >> return(-ENOIOCTLCMD); > > In other words, these return statements should be breaks so we hit > the call to: > > DGNC_UNLOCK(ch->ch_lock, lock_flags); Hmm, I looked thru the code a few times, and it seems like it unlocks before every return. Can you paste an example where it does this? Thanks, Lidza _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel