Merge "serial: msm_geni_serial: Fix deadlock scenario with rx_lock"

This commit is contained in:
qctecmdr 2021-09-03 04:59:01 -07:00 • committed by Gerrit - the friendly Code Review server
commit 20e78130d6

View file

@ -2100,8 +2100,9 @@ static bool handle_rx_dma_xfer(u32 s_irq_status, struct uart_port *uport)
bool drop_rx = false;
struct msm_geni_serial_port *msm_port = GET_DEV_PORT(uport);
u32 dma_rx_status;
unsigned long lock_flags;
spin_lock(&msm_port->rx_lock);
spin_lock_irqsave(&msm_port->rx_lock, lock_flags);
dma_rx_status = geni_read_reg_nolog(uport->membase,
SE_DMA_RX_IRQ_STAT);
@ -2166,7 +2167,7 @@ static bool handle_rx_dma_xfer(u32 s_irq_status, struct uart_port *uport)
ret = true;
exit:
spin_unlock(&msm_port->rx_lock);
spin_unlock_irqrestore(&msm_port->rx_lock, lock_flags);
return ret;
}