From f5830e453ae3163a6c82e37fe74e1d9ef06576e5 Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Wed, 30 Apr 2008 00:53:17 -0700 Subject: [PATCH] --- yaml --- r: 95158 b: refs/heads/master c: 37925e050379ef4db9f4ed251786b6d43da6ec71 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/char/epca.c | 17 ++--------------- 2 files changed, 3 insertions(+), 16 deletions(-) diff --git a/[refs] b/[refs] index d9cbbdc3014d..2c33f6107dca 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7b130c0efd7acbdc3cf9b2e7cc9a26e923feec93 +refs/heads/master: 37925e050379ef4db9f4ed251786b6d43da6ec71 diff --git a/trunk/drivers/char/epca.c b/trunk/drivers/char/epca.c index ffd747c5dff0..9a682851283e 100644 --- a/trunk/drivers/char/epca.c +++ b/trunk/drivers/char/epca.c @@ -2206,21 +2206,6 @@ static int pc_ioctl(struct tty_struct *tty, struct file * file, tty_wait_until_sent(tty, 0); digi_send_break(ch, arg ? arg*(HZ/10) : HZ/4); return 0; - case TIOCGSOFTCAR: - if (put_user(C_CLOCAL(tty)?1:0, (unsigned long __user *)arg)) - return -EFAULT; - return 0; - case TIOCSSOFTCAR: - { - unsigned int value; - - if (get_user(value, (unsigned __user *)argp)) - return -EFAULT; - tty->termios->c_cflag = - ((tty->termios->c_cflag & ~CLOCAL) | - (value ? CLOCAL : 0)); - return 0; - } case TIOCMODG: mflag = pc_tiocmget(tty, file); if (put_user(mflag, (unsigned long __user *)argp)) @@ -2253,6 +2238,7 @@ static int pc_ioctl(struct tty_struct *tty, struct file * file, break; case DIGI_SETAW: case DIGI_SETAF: + lock_kernel(); if (cmd == DIGI_SETAW) { /* Setup an event to indicate when the transmit buffer empties */ spin_lock_irqsave(&epca_lock, flags); @@ -2264,6 +2250,7 @@ static int pc_ioctl(struct tty_struct *tty, struct file * file, if (tty->ldisc.flush_buffer) tty->ldisc.flush_buffer(tty); } + unlock_kernel(); /* Fall Thru */ case DIGI_SETA: if (copy_from_user(&ch->digiext, argp, sizeof(digi_t)))