mirror of https://gitee.com/openkylin/linux.git
VSOCK: make af_vsock.ko removable again
Commitc1eef220c1
("vsock: always call vsock_init_tables()") introduced a module_init() function without a corresponding module_exit() function. Modules with an init function can only be removed if they also have an exit function. Therefore the vsock module was considered "permanent" and could not be removed. This patch adds an empty module_exit() function so that "rmmod vsock" works. No explicit cleanup is required because: 1. Transports call vsock_core_exit() upon exit and cannot be removed while sockets are still alive. 2. vsock_diag.ko does not perform any action that requires cleanup by vsock.ko. Fixes:c1eef220c1
("vsock: always call vsock_init_tables()") Reported-by: Xiumei Mu <xmu@redhat.com> Cc: Cong Wang <xiyou.wangcong@gmail.com> Cc: Jorgen Hansen <jhansen@vmware.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Jorgen Hansen <jhansen@vmware.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
5968a70d7a
commit
05e489b159
|
@ -2018,7 +2018,13 @@ const struct vsock_transport *vsock_core_get_transport(void)
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(vsock_core_get_transport);
|
||||
|
||||
static void __exit vsock_exit(void)
|
||||
{
|
||||
/* Do nothing. This function makes this module removable. */
|
||||
}
|
||||
|
||||
module_init(vsock_init_tables);
|
||||
module_exit(vsock_exit);
|
||||
|
||||
MODULE_AUTHOR("VMware, Inc.");
|
||||
MODULE_DESCRIPTION("VMware Virtual Socket Family");
|
||||
|
|
Loading…
Reference in New Issue