Skip to contentSkip to conversation

serial: mpsc: release port lock on call to tty_flip_buffer_push

PATCH New Dale Farnsworth 1 participant 1 message Jul 22, 2008 TTY layer and serial drivers

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 serial: mpsc: release port lock on call to tty_flip_buffer_push

We need to release the port lock when we call tty_flip_buffer_push() to avoid a deadlock when the serial-core routines try to acquire the same lock. This deadlock has been observed on CONFIG_PREEMPT_RT configurations.

---
 drivers/serial/mpsc.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
drivers/serial/mpsc.c +2 -0
index c9f53e7..158d748 100644
@@ -1065,7 +1065,9 @@ next_frame:
 	if ((readl(pi->sdma_base + SDMA_SDCM) & SDMA_SDCM_ERD) == 0)
 		mpsc_start_rx(pi);
 
+	spin_unlock(&pi->port.lock);
 	tty_flip_buffer_push(tty);
+	spin_lock(&pi->port.lock);
 	return rc;
 }
 
Signature · 1 line
1.5.6