diff options
author | Jiri Slaby <jirislaby@gmail.com> | 2006-12-08 05:38:18 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-08 11:28:53 -0500 |
commit | eba529ecf76fcea5f82ceaf803b030d5e0ce71f7 (patch) | |
tree | 22612f049ff773aef27c2bcba687c97b1c8c0744 | |
parent | 06cc86b5bd4edcf5e7d68624f7d5c9951916f3d1 (diff) |
[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: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | drivers/char/mxser_new.c | 12 |
1 files changed, 0 insertions, 12 deletions
diff --git a/drivers/char/mxser_new.c b/drivers/char/mxser_new.c index 4ca97c4401d5..61c5594ac12b 100644 --- a/drivers/char/mxser_new.c +++ b/drivers/char/mxser_new.c | |||
@@ -1687,22 +1687,12 @@ static void mxser_startrx(struct tty_struct *tty) | |||
1687 | */ | 1687 | */ |
1688 | static void mxser_throttle(struct tty_struct *tty) | 1688 | static void mxser_throttle(struct tty_struct *tty) |
1689 | { | 1689 | { |
1690 | struct mxser_port *info = tty->driver_data; | ||
1691 | unsigned long flags; | ||
1692 | |||
1693 | spin_lock_irqsave(&info->slock, flags); | ||
1694 | mxser_stoprx(tty); | 1690 | mxser_stoprx(tty); |
1695 | spin_unlock_irqrestore(&info->slock, flags); | ||
1696 | } | 1691 | } |
1697 | 1692 | ||
1698 | static void mxser_unthrottle(struct tty_struct *tty) | 1693 | static void mxser_unthrottle(struct tty_struct *tty) |
1699 | { | 1694 | { |
1700 | struct mxser_port *info = tty->driver_data; | ||
1701 | unsigned long flags; | ||
1702 | |||
1703 | spin_lock_irqsave(&info->slock, flags); | ||
1704 | mxser_startrx(tty); | 1695 | mxser_startrx(tty); |
1705 | spin_unlock_irqrestore(&info->slock, flags); | ||
1706 | } | 1696 | } |
1707 | 1697 | ||
1708 | static void mxser_set_termios(struct tty_struct *tty, struct termios *old_termios) | 1698 | 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 | } | 1920 | } |
1931 | /* above add by Victor Yu. 09-13-2002 */ | 1921 | /* above add by Victor Yu. 09-13-2002 */ |
1932 | 1922 | ||
1933 | spin_lock(&port->slock); | ||
1934 | /* following add by Victor Yu. 09-02-2002 */ | 1923 | /* following add by Victor Yu. 09-02-2002 */ |
1935 | status = inb(port->ioaddr + UART_LSR); | 1924 | status = inb(port->ioaddr + UART_LSR); |
1936 | 1925 | ||
@@ -1981,7 +1970,6 @@ static irqreturn_t mxser_interrupt(int irq, void *dev_id, struct pt_regs *regs) | |||
1981 | if (status & UART_LSR_THRE) | 1970 | if (status & UART_LSR_THRE) |
1982 | mxser_transmit_chars(port); | 1971 | mxser_transmit_chars(port); |
1983 | } | 1972 | } |
1984 | spin_unlock(&port->slock); | ||
1985 | } while (int_cnt++ < MXSER_ISR_PASS_LIMIT); | 1973 | } while (int_cnt++ < MXSER_ISR_PASS_LIMIT); |
1986 | } | 1974 | } |
1987 | if (pass_counter++ > MXSER_ISR_PASS_LIMIT) | 1975 | if (pass_counter++ > MXSER_ISR_PASS_LIMIT) |