Re: [RFC PATCH 04/11] hv_netvsc: Disable NAPI before closing the VMBus channel
From: Andrea Parri
Date: Thu Mar 26 2020 - 13:55:46 EST
On Thu, Mar 26, 2020 at 08:26:36AM -0700, Stephen Hemminger wrote:
> On Wed, 25 Mar 2020 23:54:58 +0100
> "Andrea Parri (Microsoft)" <parri.andrea@xxxxxxxxx> wrote:
>
> > vmbus_chan_sched() might call the netvsc driver callback function that
> > ends up scheduling NAPI work. This "work" can access the channel ring
> > buffer, so we must ensure that any such work is completed and that the
> > ring buffer is no longer being accessed before freeing the ring buffer
> > data structure in the channel closure path. To this end, disable NAPI
> > before calling vmbus_close() in netvsc_device_remove().
> >
> > Suggested-by: Michael Kelley <mikelley@xxxxxxxxxxxxx>
> > Signed-off-by: Andrea Parri (Microsoft) <parri.andrea@xxxxxxxxx>
> > Cc: "David S. Miller" <davem@xxxxxxxxxxxxx>
> > Cc: <netdev@xxxxxxxxxxxxxxx>
>
> Do you have a test that reproduces this issue?
I don't (or I'm not aware of such a test).
>
> The netvsc device is somewhat unique in that it needs NAPI
> enabled on the primary channel to interact with the host.
> Therefore it can't call napi_disable in the normal dev->stop() place.
>
> Acked-by: Stephen Hemminger <stephen@xxxxxxxxxxxxxxxxxx>
Thanks!
Andrea