>  #ifdef CONFIG_TUN_VNET_CROSS_LE
>  static inline bool tun_legacy_is_little_endian(struct tun_struct *tun)
>  {
> @@ -541,6 +604,11 @@ static void __tun_detach(struct tun_file *tfile, bool 
> clean)
>
>         tun = rtnl_dereference(tfile->tun);
>
> +       if (tun && clean) {
> +               tun_napi_disable(tun, tfile);
are we missing synchronize_net() separating disable and del calls?
> +               tun_napi_del(tun, tfile);
> +       }
> +
>         if (tun && !tfile->detached) {
>                 u16 index = tfile->queue_index;
>                 BUG_ON(index >= tun->numqueues);

Reply via email to