On Wed, Jun 07, 2023 at 01:36:23PM +0300, Vitaliy Makkoveev wrote:
> In this point the interface is already removed from the list of all
> interfaces and from the interface index map and all possible
> concurrent ioctl() threads finished. Remove this dead code.

Should we set ifp->if_ioctl to NULL?  Then we crash if we have a
race somewhere.

anyway OK bluhm@

> Index: sys/net/if.c
> ===================================================================
> RCS file: /cvs/src/sys/net/if.c,v
> retrieving revision 1.699
> diff -u -p -r1.699 if.c
> --- sys/net/if.c      5 Jun 2023 11:35:46 -0000       1.699
> +++ sys/net/if.c      7 Jun 2023 10:22:36 -0000
> @@ -145,7 +145,6 @@ int       if_setrdomain(struct ifnet *, int);
>  void if_slowtimo(void *);
>  
>  void if_detached_qstart(struct ifqueue *);
> -int  if_detached_ioctl(struct ifnet *, u_long, caddr_t);
>  
>  int  ifioctl_get(u_long, caddr_t);
>  int  ifconf(caddr_t);
> @@ -1128,7 +1127,6 @@ if_detach(struct ifnet *ifp)
>  
>       NET_LOCK();
>       s = splnet();
> -     ifp->if_ioctl = if_detached_ioctl;
>       ifp->if_watchdog = NULL;
>  
>       /* Remove the watchdog timeout & task */
> @@ -2761,19 +2759,13 @@ if_getdata(struct ifnet *ifp, struct if_
>  }
>  
>  /*
> - * Dummy functions replaced in ifnet during detach (if protocols decide to
> + * Dummy function replaced in ifnet during detach (if protocols decide to
>   * fiddle with the if during detach.
>   */
>  void
>  if_detached_qstart(struct ifqueue *ifq)
>  {
>       ifq_purge(ifq);
> -}
> -
> -int
> -if_detached_ioctl(struct ifnet *ifp, u_long a, caddr_t b)
> -{
> -     return ENODEV;
>  }
>  
>  /*

Reply via email to