Messages in this thread | | | Subject | Re: [PATCH net-next V3] tun: add eBPF based queue selection method | From | Jason Wang <> | Date | Fri, 8 Dec 2017 10:25:19 +0800 |
| |
On 2017年12月08日 06:11, Eric Dumazet wrote: > On Mon, 2017-12-04 at 17:31 +0800, Jason Wang wrote: >> This patch introduces an eBPF based queue selection method. With >> this, >> the policy could be offloaded to userspace completely through a new >> ioctl TUNSETSTEERINGEBPF. > Sorry for the delay, I see this patch was merged already. > > ... > >> static void tun_free_netdev(struct net_device *dev) >> { >> struct tun_struct *tun = netdev_priv(dev); >> @@ -1996,6 +2068,9 @@ static void tun_free_netdev(struct net_device >> *dev) >> free_percpu(tun->pcpu_stats); >> tun_flow_uninit(tun); >> security_tun_dev_free_security(tun->security); >> + rtnl_lock(); >> + __tun_set_steering_ebpf(tun, NULL); >> + rtnl_unlock(); >> } > I am pretty sure tun_free_netdev() (aka ->priv_destructor()) can be > called under RTNL (say from register_netdevice()) > > So this will dead lock badly ? > >
Unfortunately yes. Will switch to use spinlock (tun->lock) to synchronize here.
Thanks
| |