Message ID | 1699391132-30317-3-git-send-email-haiyangz@microsoft.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | hv_netvsc: fix race of netvsc and VF register | expand |
On Tue, 7 Nov 2023 13:05:32 -0800 Haiyang Zhang wrote: > If VF NIC is registered earlier, NETDEV_REGISTER event is replayed, > but NETDEV_POST_INIT is not. But Long Li sent the patch which starts to use POST_INIT against the net-next tree. If we apply this to net and Long Li's patch to net-next one release will have half of the fixes. I think that you should add Long Li's patch to this series. That'd limit the confusion and git preserves authorship of the changes, so neither of you will loose the credit.
> -----Original Message----- > From: Jakub Kicinski <kuba@kernel.org> > Sent: Wednesday, November 8, 2023 9:26 PM > To: Haiyang Zhang <haiyangz@microsoft.com> > Cc: linux-hyperv@vger.kernel.org; netdev@vger.kernel.org; KY Srinivasan > <kys@microsoft.com>; wei.liu@kernel.org; Dexuan Cui > <decui@microsoft.com>; edumazet@google.com; pabeni@redhat.com; > davem@davemloft.net; linux-kernel@vger.kernel.org; stable@vger.kernel.org > Subject: Re: [PATCH net,v3, 2/2] hv_netvsc: Fix race of > register_netdevice_notifier and VF register > > On Tue, 7 Nov 2023 13:05:32 -0800 Haiyang Zhang wrote: > > If VF NIC is registered earlier, NETDEV_REGISTER event is replayed, > > but NETDEV_POST_INIT is not. > > But Long Li sent the patch which starts to use POST_INIT against > the net-next tree. If we apply this to net and Long Li's patch to > net-next one release will have half of the fixes. > > I think that you should add Long Li's patch to this series. That'd > limit the confusion and git preserves authorship of the changes, so > neither of you will loose the credit. Will do. Thanks, - Haiyang
diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c index 5e528a76f5f5..1d1491da303b 100644 --- a/drivers/net/hyperv/netvsc_drv.c +++ b/drivers/net/hyperv/netvsc_drv.c @@ -2793,11 +2793,14 @@ static int __init netvsc_drv_init(void) } netvsc_ring_bytes = ring_size * PAGE_SIZE; + register_netdevice_notifier(&netvsc_netdev_notifier); + ret = vmbus_driver_register(&netvsc_drv); - if (ret) + if (ret) { + unregister_netdevice_notifier(&netvsc_netdev_notifier); return ret; + } - register_netdevice_notifier(&netvsc_netdev_notifier); return 0; }