serial: 8250: Fix thread unsafe __dma_tx_complete function
authorLoic Poulain <loic.poulain@intel.com>
Thu, 24 Apr 2014 09:34:48 +0000 (11:34 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 7 Jun 2014 20:25:30 +0000 (13:25 -0700)
commite179df5fd9250ae67f8e8fcb1e56a43ce820fcae
treeb593e3410f89ce6ef7fa9611da0a4795b74e953c
parent96679ed69d1a369161e032894c7d2967a8e21031
serial: 8250: Fix thread unsafe __dma_tx_complete function

commit f8fd1b0350d3a4581125f5eda6528f5a2c5f9183 upstream.

__dma_tx_complete is not protected against concurrent
call of serial8250_tx_dma. it can lead to circular tail
index corruption or parallel call of serial_tx_dma on the
same data portion.

This patch fixes this issue by holding the port lock.

Signed-off-by: Loic Poulain <loic.poulain@intel.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/8250/8250_dma.c