Loading
serial: 8250: always disable IRQ during THRE test
commit 039d4926 ("serial: 8250: Toggle IER bits on only after irq has been set up") moved IRQ setup before the THRE test, in combination with commit 205d300a ("serial: 8250: change lock order in serial8250_do_startup()") the interrupt handler can run during the test and race with its IIR reads. This can produce wrong THRE test results and cause spurious registration of the serial8250_backup_timeout timer. Unconditionally disable the IRQ for the short duration of the test and re-enable it afterwards to avoid the race. Fixes: 039d4926 ("serial: 8250: Toggle IER bits on only after irq has been set up") Depends-on: 205d300a ("serial: 8250: change lock order in serial8250_do_startup()") Cc: stable <stable@kernel.org> Signed-off-by:Peng Zhang <zhangpeng.00@bytedance.com> Reviewed-by:
Muchun Song <songmuchun@bytedance.com> Signed-off-by:
Alban Bedel <alban.bedel@lht.dlh.de> Tested-by:
Maximilian Lueer <maximilian.lueer@lht.dlh.de> Link: https://patch.msgid.link/20260224121639.579404-1-alban.bedel@lht.dlh.de Signed-off-by:
Greg Kroah-Hartman <gregkh@linuxfoundation.org>