These patches try to handle the hot-unplug of vsock virtio transport device in a proper way.
Maybe move the vsock_core_init()/vsock_core_exit() functions in the module_init and module_exit of vsock_virtio_transport module can't be the best way, but the architecture of vsock_core forces us to this approach for now. The vsock_core proto_ops expect a valid pointer to the transport device, so we can't call vsock_core_exit() until there are open sockets. Another (little more complex) approach during the device removal, could be to unregister the AF_VSOCK protocol, then reset all sockets and wait for their destruction. At this point, we can set the transport pointer to NULL. Any suggestions would be helpful. Stefano Garzarella (2): vsock/virtio: fix kernel panic after device hot-unplug vsock/virtio: reset connected sockets on device removal net/vmw_vsock/virtio_transport.c | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) -- 2.19.2