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.
signature.asc
Description: PGP signature