linux_dsm_epyc7002/drivers/tty/serial
Mark Deneen bb7e73c598 tty/serial: at91: reset rx_ring when port is shutdown
When using RX DMA, the driver won't pass any data to the uart layer
until the buffer is flipped. When the port is shutdown, the dma buffers
are unmapped, but the head and tail of the ring buffer are not reseted.
Since the serial console will keep the port open, this will only
present itself when the uart is not shared.

To reproduce the issue, with an unpatched driver, run a getty on /dev/ttyS0
with no serial console and exit. Getty will exit, and when the new one returns
you will be unable to log in.  If you hold down a key long enough to fill the
DMA buffer and flip it, you can then log in.

Signed-off-by: Mark Deneen <mdeneen@gmail.com>
Acked-by: Leilei Zhao <leilei.zhao@atmel.com>
[nicolas.ferre@atmel.com: adapt to mainline kernel, handle !DMA case]
Cc: <stable@vger.kernel.org> # v3.12
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-01-07 17:11:48 -08:00
..
8250 tty: delete non-required instances of include <linux/init.h> 2014-01-07 17:05:21 -08:00
cpm_uart tty: delete non-required instances of include <linux/init.h> 2014-01-07 17:05:21 -08:00
jsm TTY: jsm, remove superfluous check 2013-03-18 16:17:20 -07:00
21285.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
68328serial.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu 2013-05-10 07:22:35 -07:00
altera_jtaguart.c ARM: SoC DT updates for 3.12 2013-09-06 13:26:27 -07:00
altera_uart.c ARM: SoC DT updates for 3.12 2013-09-06 13:26:27 -07:00
amba-pl010.c serial: pl010: Convert to modern PM ops 2013-12-08 17:09:07 -08:00
amba-pl011.c serial: pl011: fix fall back from DMA to interrupt mode 2013-12-17 09:36:23 -08:00
apbuart.c tty: serial: apbuart: drop uart_port->lock before calling tty_flip_buffer_push() 2013-08-27 16:17:33 -07:00
apbuart.h
ar933x_uart.c tty: ar933x_uart: add device tree support and binding documentation 2013-08-30 14:11:27 -07:00
arc_uart.c serial: arc_uart: Remove casting the return value which is a void pointer 2013-09-26 14:29:58 -07:00
atmel_serial.c tty/serial: at91: reset rx_ring when port is shutdown 2014-01-07 17:11:48 -08:00
bcm63xx_uart.c tty: serial: bcm63xx: drop uart_port->lock before calling tty_flip_buffer_push() 2013-08-27 16:17:34 -07:00
bfin_sport_uart.c serial: bfin_sport_uart: Remove casting the return value which is a void pointer 2013-09-26 14:29:58 -07:00
bfin_sport_uart.h
bfin_uart.c tty: Remove unnecessary semicolons 2013-10-16 13:08:16 -07:00
clps711x.c serial: clps711x: Enable driver compilation with COMPILE_TEST 2014-01-07 17:06:18 -08:00
crisv10.c crisv10: use counts from tty_port 2013-03-18 16:26:33 -07:00
crisv10.h crisv10: use counts from tty_port 2013-03-18 16:26:33 -07:00
dz.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
dz.h
efm32-uart.c tty: serial: efm32: drop uart_port->lock before calling tty_flip_buffer_push() 2013-08-27 16:17:34 -07:00
fsl_lpuart.c serial: fsl_lpuart: Return proper error on lpuart_serial_init error path 2013-07-26 16:01:20 -07:00
icom.c serial: icom: move array overflow checks earlier 2013-08-27 16:24:33 -07:00
icom.h
ifx6x60.c serial: ifx6x60: Remove casting the return value which is a void pointer 2013-09-26 14:29:58 -07:00
ifx6x60.h
imx.c serial: imx: add support for loopback mode. 2013-12-08 17:09:07 -08:00
ioc3_serial.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
ioc4_serial.c serial: ioc4_serial: Staticize ioc4_serial_attach_one() 2013-08-12 11:35:32 -07:00
ip22zilog.c tty: Remove unnecessary semicolons 2013-10-16 13:08:16 -07:00
ip22zilog.h
Kconfig serial: clps711x: Enable driver compilation with COMPILE_TEST 2014-01-07 17:06:18 -08:00
kgdb_nmi.c tty: delete non-required instances of include <linux/init.h> 2014-01-07 17:05:21 -08:00
kgdboc.c treewide: Convert retrun typos to return 2013-09-04 12:26:36 +02:00
lantiq.c serial: MIPS: lantiq: fix clock error check 2013-08-12 11:37:48 -07:00
lpc32xx_hs.c tty: serial: lpc32xx_hs: drop uart_port->lock before calling tty_flip_buffer_push() 2013-08-27 16:17:34 -07:00
m32r_sio_reg.h
m32r_sio.c tty: serial: m32r_sio: drop uart_port->lock before calling tty_flip_buffer_push() 2013-08-27 16:17:34 -07:00
m32r_sio.h
Makefile serial: Remove old SC26XX driver 2013-12-19 12:34:30 -08:00
max310x.c tty: Remove unnecessary semicolons 2013-10-16 13:08:16 -07:00
max3100.c serial: use dev_get_platdata() 2013-07-31 17:56:15 -07:00
mcf.c tty: serial: mcf: drop uart_port->lock before calling tty_flip_buffer_push() 2013-08-27 16:17:34 -07:00
mfd.c serial: mfd: Staticize local symbols 2013-10-29 16:34:11 -07:00
mpc52xx_uart.c serial: mpc52xx: remove reference to .set_wake() 2013-10-16 13:16:19 -07:00
mpsc.c serial: mpsc: Remove casting the return value which is a void pointer 2013-09-26 14:29:58 -07:00
mrst_max3110.c mrst_max3110: fix unbalanced IRQ issue during resume 2013-10-29 16:26:54 -07:00
mrst_max3110.h
msm_serial_hs.c serial: use dev_get_platdata() 2013-07-31 17:56:15 -07:00
msm_serial.c msm_serial: Send more than 1 character on the console w/ UARTDM 2013-08-27 16:22:59 -07:00
msm_serial.h msm_serial: Make baud_code detection more dynamic 2013-07-26 16:13:29 -07:00
msm_smd_tty.c TTY: msm_smd_tty, clean up activate/shutdown 2013-03-18 16:19:44 -07:00
mux.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
mxs-auart.c tty: serial: mxs-auart: Check the return value from clk_prepare_enable() 2013-12-08 17:14:58 -08:00
netx-serial.c tty: serial: netx: drop uart_port->lock before calling tty_flip_buffer_push() 2013-08-27 16:17:34 -07:00
nwpserial.c tty: serial: nwpserial: drop uart_port->lock before calling tty_flip_buffer_push() 2013-08-27 16:17:35 -07:00
of_serial.c tty: delete non-required instances of include <linux/init.h> 2014-01-07 17:05:21 -08:00
omap-serial.c serial: omap: fix missing comma 2013-10-31 09:03:20 -07:00
pch_uart.c tty: remove DEFINE_PCI_DEVICE_TABLE macro 2013-12-08 17:09:07 -08:00
pmac_zilog.c TTY: pmac_zilog, check existence of ports in pmz_console_init() 2013-11-25 08:54:25 -08:00
pmac_zilog.h
pnx8xxx_uart.c tty: serial: pnx8xxx: drop uart_port->lock before calling tty_flip_buffer_push() 2013-08-27 16:17:35 -07:00
pxa.c serial: pxa: Staticize local symbols 2013-08-12 11:10:16 -07:00
rp2.c tty: remove DEFINE_PCI_DEVICE_TABLE macro 2013-12-08 17:09:07 -08:00
sa1100.c serial: sa1100: delete .set_wake callback 2013-10-16 13:16:18 -07:00
samsung.c serial: samsung: add support for manual RTS setting 2013-09-26 15:41:38 -07:00
samsung.h serial: samsung: Remove casting the return value which is a void pointer 2013-09-26 14:29:59 -07:00
sb1250-duart.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
sccnxp.c serial: sccnxp: missing uart_unregister_driver() on error in sccnxp_probe() 2013-09-26 15:44:45 -07:00
serial_core.c serial_core: Don't re-initialize a previously initialized spinlock. 2013-12-08 16:44:21 -08:00
serial_ks8695.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
serial_txx9.c serial: txx9: remove unnecessary pci_set_drvdata() 2013-09-26 15:41:38 -07:00
serial-tegra.c serial: tegra: remove deprecated IRQF_DISABLED 2013-10-07 00:13:58 -07:00
sh-sci.c serial: sh: use DMA_COMPLETE for dma completion status 2013-10-25 11:16:19 +05:30
sh-sci.h serial: sh-sci: remove obsolete Kconfig macros 2013-03-25 14:06:45 -07:00
sirfsoc_uart.c serial: sirf: correct condition for fetching dma buffer into tty 2014-01-07 17:09:04 -08:00
sirfsoc_uart.h serial: sirf: remove duplicate defines 2013-10-29 16:26:54 -07:00
sn_console.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
st-asc.c serial: st-asc: remove unnecessary platform_set_drvdata() 2013-08-27 16:24:33 -07:00
suncore.c
sunhv.c serial: use platform_{get,set}_drvdata() 2013-06-03 10:21:33 -07:00
sunsab.c tty: Remove unnecessary semicolons 2013-10-16 13:08:16 -07:00
sunsab.h
sunsu.c tty: Remove unnecessary semicolons 2013-10-16 13:08:16 -07:00
sunzilog.c tty: Remove unnecessary semicolons 2013-10-16 13:08:16 -07:00
sunzilog.h
tilegx.c tilegx: Add tty serial support for TILE-Gx on-chip UART 2013-09-03 14:50:40 -04:00
timbuart.c serial: timbuart: Staticize local symbols 2013-08-12 11:35:31 -07:00
timbuart.h
uartlite.c tty: serial: uartlite: Support uartlite on big and little endian systems 2013-02-13 08:38:45 -08:00
ucc_uart.c DeviceTree updates for 3.13. This is a bit larger pull request than 2013-11-12 16:52:17 +09:00
vr41xx_siu.c serial: use dev_get_platdata() 2013-07-31 17:56:15 -07:00
vt8500_serial.c serial: vt8500: add missing braces 2013-10-16 13:22:16 -07:00
xilinx_uartps.c tty: xuartps: Properly guard sysrq specific code 2013-12-17 16:02:25 -08:00
zs.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
zs.h