aboutsummaryrefslogtreecommitdiff
path: root/include/linux/debugobjects.h
diff options
context:
space:
mode:
authorIlpo Järvinen <[email protected]>2022-06-08 12:54:28 +0300
committerGreg Kroah-Hartman <[email protected]>2022-06-10 13:45:08 +0200
commit6a4241e8f9b17aa17f55842d6478f280c22d2b44 (patch)
tree1cc8ede3c7a210329a2671f07d7235e3e2bce4bc /include/linux/debugobjects.h
parentbdb70c424df1543bc02ee2639aecebd20318c599 (diff)
serial: 8250: Get preserved flags using serial_lsr_in()
serial8250_handle_irq() assumes it's the first to read LSR register. However, there are 8250 drivers which perform LSR read in their own irq handler prior to calling serial8250_handle_irq(). As not all flags are preserved across LSR reads, use serial_lsr_in() helper to get all the preserved flags. This commit might fix other commits too besides the ones for DW UART mentioned below. It's just not clear to me which of the other devices clear some of the LSR flags on read. AFAIK, nobody has complained about this problem (either against DW or other devices) so it might not have that bad impact in the end. Fixes: 424d79183af0 ("serial: 8250_dw: Avoid "too much work" from bogus rx timeout interrupt") Fixes: aa63d786cea2 ("serial: 8250: dw: Add support for DMA flow controlling devices") Reviewed-by: Andy Shevchenko <[email protected]> Signed-off-by: Ilpo Järvinen <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
Diffstat (limited to 'include/linux/debugobjects.h')
0 files changed, 0 insertions, 0 deletions