> From: Haiyang Zhang <haiya...@microsoft.com>
> Sent: Thursday, September 12, 2019 6:50 AM
> > -----Original Message-----
> > From: Dexuan Cui <de...@microsoft.com>
> > Sent: Wednesday, September 11, 2019 7:38 PM

> > +static int netvsc_suspend(struct hv_device *dev)
> > +{
> > +   struct net_device_context *ndev_ctx;
> > +   struct net_device *vf_netdev, *net;
> > +   struct netvsc_device *nvdev;
> > +   int ret;
> > +
> > +   net = hv_get_drvdata(dev);
> > +
> > +   ndev_ctx = netdev_priv(net);
> > +   cancel_delayed_work_sync(&ndev_ctx->dwork);
> > +
> > +   rtnl_lock();
> > +
> > +   nvdev = rtnl_dereference(ndev_ctx->nvdev);
> > +   if (nvdev == NULL) {
> > +           ret = -ENODEV;
> > +           goto out;
> > +   }
> > +
> > +   cancel_work_sync(&nvdev->subchan_work);
> 
> This looks redundant because netvsc_detach() cancels subchan_work.
> - Haiyang

You are right. I'll remove the superflous line 
cancel_work_sync(&nvdev->subchan_work);
in netvsc_suspend() in v2.

I'll wait for a few days before posting v2, in case people may have
other comments.

Thanks,
-- Dexuan

Reply via email to