mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-15 23:14:31 +08:00
63ffcbdad7
The code currently NULLs tty->driver_data in hvcs_close() with the
intent of informing the next call to hvcs_open() that device needs to be
reconfigured. However, when hvcs_cleanup() is called we copy hvcsd from
tty->driver_data which was previoulsy NULLed by hvcs_close() and our
call to tty_port_put(&hvcsd->port) doesn't actually do anything since
&hvcsd->port ends up translating to NULL by chance. This has the side
effect that when hvcs_remove() is called we have one too many port
references preventing hvcs_destuct_port() from ever being called. This
also prevents us from reusing the /dev/hvcsX node in a future
hvcs_probe() and we can eventually run out of /dev/hvcsX devices.
Fix this by waiting to NULL tty->driver_data in hvcs_cleanup().
Fixes:
|
||
---|---|---|
.. | ||
hvc_console.c | ||
hvc_console.h | ||
hvc_dcc.c | ||
hvc_irq.c | ||
hvc_iucv.c | ||
hvc_opal.c | ||
hvc_riscv_sbi.c | ||
hvc_rtas.c | ||
hvc_udbg.c | ||
hvc_vio.c | ||
hvc_xen.c | ||
hvcs.c | ||
hvsi_lib.c | ||
hvsi.c | ||
Kconfig | ||
Makefile |