Arnd Bergmann wrote: > diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c > new file mode 100644 > index 0000000..d99bfc0 > --- /dev/null > +++ b/drivers/net/macvtap.c > +static int macvtap_open(struct inode *inode, struct file *file) > +{ > + struct net *net = current->nsproxy->net_ns; > + int ifindex = iminor(inode); > + struct net_device *dev = dev_get_by_index(net, ifindex); > + int err; > + > + err = -ENODEV; > + if (!dev) > + goto out1; > + > + file->private_data = netdev_priv(dev); > + err = 0; > +out1: > + return err; > +} macvlan will remove all macvlan/vtap devices when the underlying device in unregistered, at which time you need to release the device references you're holding. I'd suggest to change the macvlan_device_event() handler to use vlan->dev->rtnl_link_ops->dellink(vlan->dev) instead of macvlan_dellink() so the macvtap_dellink callback is invoked. _______________________________________________ Bridge mailing list Bridge@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/bridge