Commit eba529ec authored by Jiri Slaby's avatar Jiri Slaby Committed by Linus Torvalds

[PATCH] Char: mxser_new, revert spin_lock changes

Some spinlock changes were introduced in 1.9.1 original moxa driver.  Revert
them, since they cause machine not responding.
Signed-off-by: default avatarJiri Slaby <jirislaby@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 06cc86b5
...@@ -1687,22 +1687,12 @@ static void mxser_startrx(struct tty_struct *tty) ...@@ -1687,22 +1687,12 @@ static void mxser_startrx(struct tty_struct *tty)
*/ */
static void mxser_throttle(struct tty_struct *tty) static void mxser_throttle(struct tty_struct *tty)
{ {
struct mxser_port *info = tty->driver_data;
unsigned long flags;
spin_lock_irqsave(&info->slock, flags);
mxser_stoprx(tty); mxser_stoprx(tty);
spin_unlock_irqrestore(&info->slock, flags);
} }
static void mxser_unthrottle(struct tty_struct *tty) static void mxser_unthrottle(struct tty_struct *tty)
{ {
struct mxser_port *info = tty->driver_data;
unsigned long flags;
spin_lock_irqsave(&info->slock, flags);
mxser_startrx(tty); mxser_startrx(tty);
spin_unlock_irqrestore(&info->slock, flags);
} }
static void mxser_set_termios(struct tty_struct *tty, struct termios *old_termios) static void mxser_set_termios(struct tty_struct *tty, struct termios *old_termios)
...@@ -1930,7 +1920,6 @@ static irqreturn_t mxser_interrupt(int irq, void *dev_id, struct pt_regs *regs) ...@@ -1930,7 +1920,6 @@ static irqreturn_t mxser_interrupt(int irq, void *dev_id, struct pt_regs *regs)
} }
/* above add by Victor Yu. 09-13-2002 */ /* above add by Victor Yu. 09-13-2002 */
spin_lock(&port->slock);
/* following add by Victor Yu. 09-02-2002 */ /* following add by Victor Yu. 09-02-2002 */
status = inb(port->ioaddr + UART_LSR); status = inb(port->ioaddr + UART_LSR);
...@@ -1981,7 +1970,6 @@ static irqreturn_t mxser_interrupt(int irq, void *dev_id, struct pt_regs *regs) ...@@ -1981,7 +1970,6 @@ static irqreturn_t mxser_interrupt(int irq, void *dev_id, struct pt_regs *regs)
if (status & UART_LSR_THRE) if (status & UART_LSR_THRE)
mxser_transmit_chars(port); mxser_transmit_chars(port);
} }
spin_unlock(&port->slock);
} while (int_cnt++ < MXSER_ISR_PASS_LIMIT); } while (int_cnt++ < MXSER_ISR_PASS_LIMIT);
} }
if (pass_counter++ > MXSER_ISR_PASS_LIMIT) if (pass_counter++ > MXSER_ISR_PASS_LIMIT)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment