The patch titled
8250: fix possible deadlock between serial8250_handle_port() and
serial8250_interrupt()
has been removed from the -mm tree. Its filename was
8250-fix-possible-deadlock-between-serial8250_handle_port-and-serial8250_interrupt.patch
This patch was dropped because it was merged into mainline or a subsystem tree
------------------------------------------------------
Subject: 8250: fix possible deadlock between serial8250_handle_port() and
serial8250_interrupt()
From: Jiri Kosina <[EMAIL PROTECTED]>
Commit 40b36daa introduced possibility that serial8250_backup_timeout() ->
serial8250_handle_port() locks port.lock without disabling irqs, thus
allowing deadlock against interrupt handler (port.lock is acquired in
serial8250_interrupt()).
Spotted by lockdep.
Signed-off-by: Jiri Kosina <[EMAIL PROTECTED]>
Cc: Dave Jones <[EMAIL PROTECTED]>
Cc: Russell King <[EMAIL PROTECTED]>
Cc: Alex Williamson <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
---
drivers/serial/8250.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff -puN
drivers/serial/8250.c~8250-fix-possible-deadlock-between-serial8250_handle_port-and-serial8250_interrupt
drivers/serial/8250.c
---
a/drivers/serial/8250.c~8250-fix-possible-deadlock-between-serial8250_handle_port-and-serial8250_interrupt
+++ a/drivers/serial/8250.c
@@ -1334,8 +1334,9 @@ static inline void
serial8250_handle_port(struct uart_8250_port *up)
{
unsigned int status;
+ unsigned long flags;
- spin_lock(&up->port.lock);
+ spin_lock_irqsave(&up->port.lock, flags);
status = serial_inp(up, UART_LSR);
@@ -1347,7 +1348,7 @@ serial8250_handle_port(struct uart_8250_
if (status & UART_LSR_THRE)
transmit_chars(up);
- spin_unlock(&up->port.lock);
+ spin_unlock_irqrestore(&up->port.lock, flags);
}
/*
_
Patches currently in -mm which might be from [EMAIL PROTECTED] are
origin.patch
git-hid.patch
git-ipwireless_cs.patch
-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html