Showing error 1185

User: Jiri Slaby
Error type: Double Unlock
Error type description: Some lock is unlocked twice unintentionally in a sequence
File location: drivers/char/epca.c
Line in file: 2313
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2012-04-30 10:52:00 UTC


Source:

2283                        stopc = ch->stopc;
2284                } else {
2285                        startc = ch->startca;
2286                        stopc = ch->stopca;
2287                }
2288
2289                if (copy_from_user(&dflow, argp, sizeof(dflow)))
2290                        return -EFAULT;
2291
2292                if (dflow.startc != startc || dflow.stopc != stopc) {
2293                        /* Begin  if setflow toggled */
2294                        spin_lock_irqsave(&epca_lock, flags);
2295                        globalwinon(ch);
2296
2297                        if (cmd == DIGI_SETFLOW) {
2298                                ch->fepstartc = ch->startc = dflow.startc;
2299                                ch->fepstopc = ch->stopc = dflow.stopc;
2300                                fepcmd(ch, SONOFFC, ch->fepstartc,
2301                                                ch->fepstopc, 0, 1);
2302                        } else {
2303                                ch->fepstartca = ch->startca = dflow.startc;
2304                                ch->fepstopca  = ch->stopca = dflow.stopc;
2305                                fepcmd(ch, SAUXONOFFC, ch->fepstartca,
2306                                                ch->fepstopca, 0, 1);
2307                        }
2308
2309                        if (ch->statusflags & TXSTOPPED)
2310                                pc_start(tty);
2311
2312                        memoff(ch);
2313                        spin_unlock_irqrestore(&epca_lock, flags);
2314                } /* End if setflow toggled */
2315                break;
2316        default:
2317                return -ENOIOCTLCMD;
2318        }
2319        return 0;
2320}
2321
2322static void pc_set_termios(struct tty_struct *tty, struct ktermios *old_termios)
2323{
Show full sources