On Wed, Apr 12, 2017 at 07:37:36PM +0300, Michael S. Tsirkin wrote:
> On Wed, Apr 12, 2017 at 05:08:23PM +0100, Stefan Hajnoczi wrote:
> > +int __vsock_remove_tap(struct vsock_tap *vt) {
> > +   bool found = false;
> > +   struct vsock_tap *tmp;
> > +
> > +   spin_lock(&vsock_tap_lock);
> > +
> > +   list_for_each_entry(tmp, &vsock_tap_all, list) {
> > +           if (vt == tmp) {
> > +                   list_del_rcu(&vt->list);
> > +                   found = true;
> > +                   goto out;
> > +           }
> > +   }
> > +
> > +   pr_warn("__vsock_remove_tap: %p not found\n", vt);
> > +out:
> > +   spin_unlock(&vsock_tap_lock);
> > +
> > +   if (found)
> > +           module_put(vt->module);
> 
> This is called before synchronize_net so there might
> still be users for this tap.

Thanks, will fix.

Attachment: signature.asc
Description: PGP signature

Reply via email to