diff options
author | Jan Yenya Kasprzak <kas@fi.muni.cz> | 2007-04-23 17:41:02 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-04-24 11:23:07 -0400 |
commit | 67d2bc58afdd5168dce54ae06f5f30038c59f498 (patch) | |
tree | 0036ede42ee23a9c2092dcab2ffad10fff6a5014 /drivers/char/mxser_new.c | |
parent | 3d124cbba316737af8f3a6959edb95bbd130a4d8 (diff) |
Char: mxser_new, fix recursive locking
Signed-off-by: Jan "Yenya" Kasprzak <kas@fi.muni.cz>
Acked-by: Jiri Slaby <jirislaby@gmail.com>
Acked-by: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/char/mxser_new.c')
-rw-r--r-- | drivers/char/mxser_new.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/char/mxser_new.c b/drivers/char/mxser_new.c index 9af07e4999d5..59e0aac19c2f 100644 --- a/drivers/char/mxser_new.c +++ b/drivers/char/mxser_new.c | |||
@@ -2230,7 +2230,14 @@ end_intr: | |||
2230 | port->mon_data.rxcnt += cnt; | 2230 | port->mon_data.rxcnt += cnt; |
2231 | port->mon_data.up_rxcnt += cnt; | 2231 | port->mon_data.up_rxcnt += cnt; |
2232 | 2232 | ||
2233 | /* | ||
2234 | * We are called from an interrupt context with &port->slock | ||
2235 | * being held. Drop it temporarily in order to prevent | ||
2236 | * recursive locking. | ||
2237 | */ | ||
2238 | spin_unlock(&port->slock); | ||
2233 | tty_flip_buffer_push(tty); | 2239 | tty_flip_buffer_push(tty); |
2240 | spin_lock(&port->slock); | ||
2234 | } | 2241 | } |
2235 | 2242 | ||
2236 | static void mxser_transmit_chars(struct mxser_port *port) | 2243 | static void mxser_transmit_chars(struct mxser_port *port) |