hv: acquire vmbus_connection.channel_mutex in vmbus_free_channels()
"kernel BUG at drivers/hv/channel_mgmt.c:350!" is observed when hv_vmbus module is unloaded. BUG_ON() was introduced in commit85d9aa7051
("Drivers: hv: vmbus: add an API vmbus_hvsock_device_unregister()") as vmbus_free_channels() codepath was apparently forgotten. Fixes:85d9aa7051
("Drivers: hv: vmbus: add an API vmbus_hvsock_device_unregister()") Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com> Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Cc: <Stable@vger.kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
f45be72c8e
commit
abd1026da4
|
@ -389,6 +389,7 @@ void vmbus_free_channels(void)
|
|||
{
|
||||
struct vmbus_channel *channel, *tmp;
|
||||
|
||||
mutex_lock(&vmbus_connection.channel_mutex);
|
||||
list_for_each_entry_safe(channel, tmp, &vmbus_connection.chn_list,
|
||||
listentry) {
|
||||
/* hv_process_channel_removal() needs this */
|
||||
|
@ -396,6 +397,7 @@ void vmbus_free_channels(void)
|
|||
|
||||
vmbus_device_unregister(channel->device_obj);
|
||||
}
|
||||
mutex_unlock(&vmbus_connection.channel_mutex);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue