aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char
diff options
context:
space:
mode:
authorJan Yenya Kasprzak <kas@fi.muni.cz>2007-04-23 17:41:02 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-04-24 11:23:07 -0400
commit67d2bc58afdd5168dce54ae06f5f30038c59f498 (patch)
tree0036ede42ee23a9c2092dcab2ffad10fff6a5014 /drivers/char
parent3d124cbba316737af8f3a6959edb95bbd130a4d8 (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')
-rw-r--r--drivers/char/mxser_new.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/char/mxser_new.c b/drivers/char/mxser_new.c
index 9af07e4999d..59e0aac19c2 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
2236static void mxser_transmit_chars(struct mxser_port *port) 2243static void mxser_transmit_chars(struct mxser_port *port)