mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-27 19:29:37 +00:00
virtio: console: Don't call hvc_remove() on unplugging console ports
hvc_remove() has some bug which freezes other active hvc ports when one port is removed. So disable calling of hvc_remove() which deregisters a port with the hvc_console. If the hvc_console code calls into our get_chars() routine as a result of a poll operation, we will return -EPIPE and the hvc_console code will then do the necessary cleanup. This call will be restored when the bug in hvc_remove() is found and fixed. Signed-off-by: Amit Shah <amit.shah@redhat.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
parent
6dc69f9702
commit
69eb9a9f69
1 changed files with 11 additions and 0 deletions
|
@ -869,7 +869,18 @@ static int remove_port(struct port *port)
|
|||
spin_lock_irq(&pdrvdata_lock);
|
||||
list_del(&port->cons.list);
|
||||
spin_unlock_irq(&pdrvdata_lock);
|
||||
#if 0
|
||||
/*
|
||||
* hvc_remove() not called as removing one hvc port
|
||||
* results in other hvc ports getting frozen.
|
||||
*
|
||||
* Once this is resolved in hvc, this functionality
|
||||
* will be enabled. Till that is done, the -EPIPE
|
||||
* return from get_chars() above will help
|
||||
* hvc_console.c to clean up on ports we remove here.
|
||||
*/
|
||||
hvc_remove(port->cons.hvc);
|
||||
#endif
|
||||
}
|
||||
if (port->guest_connected)
|
||||
send_control_msg(port, VIRTIO_CONSOLE_PORT_OPEN, 0);
|
||||
|
|
Loading…
Reference in a new issue