]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
hv_netvsc: Register VF in netvsc_probe if NET_DEVICE_REGISTER missed
authorShradha Gupta <shradhagupta@linux.microsoft.com>
Fri, 2 Feb 2024 04:40:38 +0000 (20:40 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 23 Feb 2024 08:25:16 +0000 (09:25 +0100)
commita71302c8638939c45e4ba5a99ea438185fd3f418
treeae2aadb63a8fe8d0cad0c602d52bd2c1aa823b86
parent9680b2ab54ba8d72581100e8c45471306101836e
hv_netvsc: Register VF in netvsc_probe if NET_DEVICE_REGISTER missed

commit 9cae43da9867412f8bd09aee5c8a8dc5e8dc3dc2 upstream.

If hv_netvsc driver is unloaded and reloaded, the NET_DEVICE_REGISTER
handler cannot perform VF register successfully as the register call
is received before netvsc_probe is finished. This is because we
register register_netdevice_notifier() very early( even before
vmbus_driver_register()).
To fix this, we try to register each such matching VF( if it is visible
as a netdevice) at the end of netvsc_probe.

Cc: stable@vger.kernel.org
Fixes: 85520856466e ("hv_netvsc: Fix race of register_netdevice_notifier and VF register")
Suggested-by: Dexuan Cui <decui@microsoft.com>
Signed-off-by: Shradha Gupta <shradhagupta@linux.microsoft.com>
Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com>
Reviewed-by: Dexuan Cui <decui@microsoft.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/hyperv/netvsc_drv.c