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;
> }
>
> /*