On Fri, Mar 08, 2013 at 10:14:02AM +0100, Mark Kettenis wrote:

> > Date: Fri, 8 Mar 2013 09:55:07 +0100
> > From: Martin Pieuchot <mpieuc...@nolizard.org>
> > 
> > On 07/03/13(Thu) 22:32, Claudio Jeker wrote:
> > > On Thu, Mar 07, 2013 at 04:23:34PM -0500, Ted Unangst wrote:
> > > > Maybe I'm just easily confused, but when I see LIST_END() I tend to
> > > > think it's going to be the last element in the list. I think NULL is
> > > > clearer.  As per the man page, "The SLIST_END(), LIST_END(),
> > > > SIMPLEQ_END() and TAILQ_END() macros are provided for symmetry
> > > > with CIRCLEQ_END().  They expand to NULL and don't serve any
> > > > useful purpose."
> > > > 
> > > > There are very few CIRCLEQs in the kernel, and I consider it unlikely
> > > > that we'd ever convert some of the existing lists to them, so I'd like
> > > > to zap some of the LIST_END macros.  As so:
> > > > 
> > > > Strong opinions?
> > > 
> > > Yes! Please do. OK claudio@
> > 
> > ok mpi@, and please can you also remove them from queue.h?
> 
> There's code out there that relies on these defines so you can't
> remove them from queue.h.

Indeed, and I like to be able to s/TAILQ_/CIRCLEQ_/g or the other way
around and have my code still working.

        -Otto
> 
> > > > Index: if.c
> > > > ===================================================================
> > > > RCS file: /cvs/src/sys/net/if.c,v
> > > > retrieving revision 1.250
> > > > diff -u -p -r1.250 if.c
> > > > --- if.c        7 Mar 2013 09:40:19 -0000       1.250
> > > > +++ if.c        7 Mar 2013 21:12:11 -0000
> > > > @@ -1693,7 +1693,7 @@ ifconf(u_long cmd, caddr_t data)
> > > >  
> > > >         ifrp = ifc->ifc_req;
> > > >         for (ifp = TAILQ_FIRST(&ifnet); space >= sizeof(ifr) &&
> > > > -           ifp != TAILQ_END(&ifnet); ifp = TAILQ_NEXT(ifp, if_list)) {
> > > > +           ifp != NULL; ifp = TAILQ_NEXT(ifp, if_list)) {
> > > >                 bcopy(ifp->if_xname, ifr.ifr_name, IFNAMSIZ);
> > > >                 if (TAILQ_EMPTY(&ifp->if_addrlist)) {
> > > >                         bzero((caddr_t)&ifr.ifr_addr, 
> > > > sizeof(ifr.ifr_addr));
> > > > @@ -1705,7 +1705,7 @@ ifconf(u_long cmd, caddr_t data)
> > > >                 } else
> > > >                         for (ifa = TAILQ_FIRST(&ifp->if_addrlist);
> > > >                             space >= sizeof (ifr) &&
> > > > -                           ifa != TAILQ_END(&ifp->if_addrlist);
> > > > +                           ifa != NULL;
> > > >                             ifa = TAILQ_NEXT(ifa, ifa_list)) {
> > > >                                 struct sockaddr *sa = ifa->ifa_addr;
> > > >  #if defined(COMPAT_43) || defined(COMPAT_LINUX)
> > > > Index: if_bridge.c
> > > > ===================================================================
> > > > RCS file: /cvs/src/sys/net/if_bridge.c,v
> > > > retrieving revision 1.205
> > > > diff -u -p -r1.205 if_bridge.c
> > > > --- if_bridge.c 23 Jan 2013 13:28:36 -0000      1.205
> > > > +++ if_bridge.c 7 Mar 2013 21:12:22 -0000
> > > > @@ -322,7 +322,7 @@ bridge_ioctl(struct ifnet *ifp, u_long c
> > > >                 TAILQ_FOREACH(p, &sc->sc_spanlist, next)
> > > >                         if (p->ifp == ifs)
> > > >                                 break;
> > > > -               if (p != TAILQ_END(&sc->sc_spanlist)) {
> > > > +               if (p != NULL) {
> > > >                         error = EBUSY;
> > > >                         break;
> > > >                 }
> > > > @@ -424,7 +424,7 @@ bridge_ioctl(struct ifnet *ifp, u_long c
> > > >                         if (p->ifp == ifs)
> > > >                                 break;
> > > >                 }
> > > > -               if (p != TAILQ_END(&sc->sc_spanlist)) {
> > > > +               if (p != NULL) {
> > > >                         error = EEXIST;
> > > >                         break;
> > > >                 }
> > > > @@ -450,7 +450,7 @@ bridge_ioctl(struct ifnet *ifp, u_long c
> > > >                                 break;
> > > >                         }
> > > >                 }
> > > > -               if (p == TAILQ_END(&sc->sc_spanlist)) {
> > > > +               if (p == NULL) {
> > > >                         error = ENOENT;
> > > >                         break;
> > > >                 }
> > > > @@ -1053,7 +1053,7 @@ bridge_output(struct ifnet *ifp, struct 
> > > >                                 sc->sc_if.if_oerrors++;
> > > >                                 continue;
> > > >                         }
> > > > -                       if (TAILQ_NEXT(p, next) == 
> > > > TAILQ_END(&sc->sc_iflist)) {
> > > > +                       if (TAILQ_NEXT(p, next) == NULL) {
> > > >                                 used = 1;
> > > >                                 mc = m;
> > > >                         } else {
> > > > @@ -1397,7 +1397,7 @@ bridge_input(struct ifnet *ifp, struct e
> > > >                                 if (ifl->ifp->if_type == IFT_ETHER)
> > > >                                         break;
> > > >                         }
> > > > -                       if (ifl != TAILQ_END(&sc->sc_iflist)) {
> > > > +                       if (ifl != NULL) {
> > > >                                 m->m_pkthdr.rcvif = ifl->ifp;
> > > >                                 m->m_pkthdr.rdomain = 
> > > > ifl->ifp->if_rdomain;
> > > >  #if NBPFILTER > 0
> > > > @@ -1552,7 +1552,7 @@ bridge_broadcast(struct bridge_softc *sc
> > > >                 bridge_localbroadcast(sc, dst_if, eh, m);
> > > >  
> > > >                 /* If last one, reuse the passed-in mbuf */
> > > > -               if (TAILQ_NEXT(p, next) == TAILQ_END(&sc->sc_iflist)) {
> > > > +               if (TAILQ_NEXT(p, next) == NULL) {
> > > >                         mc = m;
> > > >                         used = 1;
> > > >                 } else {
> > > > @@ -1708,7 +1708,7 @@ bridge_rtupdate(struct bridge_softc *sc,
> > > >  
> > > >         h = bridge_hash(sc, ea);
> > > >         p = LIST_FIRST(&sc->sc_rts[h]);
> > > > -       if (p == LIST_END(&sc->sc_rts[h])) {
> > > > +       if (p == NULL) {
> > > >                 if (sc->sc_brtcnt >= sc->sc_brtmax)
> > > >                         goto done;
> > > >                 p = malloc(sizeof(*p), M_DEVBUF, M_NOWAIT);
> > > > @@ -1768,7 +1768,7 @@ bridge_rtupdate(struct bridge_softc *sc,
> > > >                         goto want;
> > > >                 }
> > > >  
> > > > -               if (p == LIST_END(&sc->sc_rts[h])) {
> > > > +               if (p == NULL) {
> > > >                         if (sc->sc_brtcnt >= sc->sc_brtmax)
> > > >                                 goto done;
> > > >                         p = malloc(sizeof(*p), M_DEVBUF, M_NOWAIT);
> > > > @@ -1787,7 +1787,7 @@ bridge_rtupdate(struct bridge_softc *sc,
> > > >                         sc->sc_brtcnt++;
> > > >                         goto want;
> > > >                 }
> > > > -       } while (p != LIST_END(&sc->sc_rts[h]));
> > > > +       } while (p != NULL);
> > > >  
> > > >  done:
> > > >         ifp = NULL;
> > > > @@ -1871,7 +1871,7 @@ bridge_rtage(struct bridge_softc *sc)
> > > >  
> > > >         for (i = 0; i < BRIDGE_RTABLE_SIZE; i++) {
> > > >                 n = LIST_FIRST(&sc->sc_rts[i]);
> > > > -               while (n != LIST_END(&sc->sc_rts[i])) {
> > > > +               while (n != NULL) {
> > > >                         if ((n->brt_flags & IFBAF_TYPEMASK) == 
> > > > IFBAF_STATIC) {
> > > >                                 n->brt_age = !n->brt_age;
> > > >                                 if (n->brt_age)
> > > > @@ -1937,7 +1937,7 @@ bridge_rtflush(struct bridge_softc *sc, 
> > > >  
> > > >         for (i = 0; i < BRIDGE_RTABLE_SIZE; i++) {
> > > >                 n = LIST_FIRST(&sc->sc_rts[i]);
> > > > -               while (n != LIST_END(&sc->sc_rts[i])) {
> > > > +               while (n != NULL) {
> > > >                         if (full ||
> > > >                             (n->brt_flags & IFBAF_TYPEMASK) == 
> > > > IFBAF_DYNAMIC) {
> > > >                                 p = LIST_NEXT(n, brt_next);
> > > > @@ -1987,7 +1987,7 @@ bridge_rtdelete(struct bridge_softc *sc,
> > > >          */
> > > >         for (i = 0; i < BRIDGE_RTABLE_SIZE; i++) {
> > > >                 n = LIST_FIRST(&sc->sc_rts[i]);
> > > > -               while (n != LIST_END(&sc->sc_rts[i])) {
> > > > +               while (n != NULL) {
> > > >                         if (n->brt_if != ifp) {
> > > >                                 /* Not ours */
> > > >                                 n = LIST_NEXT(n, brt_next);
> > > > Index: if_ethersubr.c
> > > > ===================================================================
> > > > RCS file: /cvs/src/sys/net/if_ethersubr.c,v
> > > > retrieving revision 1.153
> > > > diff -u -p -r1.153 if_ethersubr.c
> > > > --- if_ethersubr.c      18 Jan 2013 12:10:11 -0000      1.153
> > > > +++ if_ethersubr.c      7 Mar 2013 21:11:10 -0000
> > > > @@ -815,7 +815,7 @@ ether_ifdetach(ifp)
> > > >         struct ether_multi *enm;
> > > >  
> > > >         for (enm = LIST_FIRST(&ac->ac_multiaddrs);
> > > > -           enm != LIST_END(&ac->ac_multiaddrs);
> > > > +           enm != NULL;
> > > >             enm = LIST_FIRST(&ac->ac_multiaddrs)) {
> > > >                 LIST_REMOVE(enm, enm_list);
> > > >                 free(enm, M_IFMADDR);
> > > > Index: rtsock.c
> > > > ===================================================================
> > > > RCS file: /cvs/src/sys/net/rtsock.c,v
> > > > retrieving revision 1.124
> > > > diff -u -p -r1.124 rtsock.c
> > > > --- rtsock.c    7 Mar 2013 09:03:16 -0000       1.124
> > > > +++ rtsock.c    7 Mar 2013 21:12:34 -0000
> > > > @@ -1346,8 +1346,7 @@ sysctl_iflist(int af, struct walkarg *w)
> > > >                         w->w_where += len;
> > > >                 }
> > > >                 ifpaddr = 0;
> > > > -               while ((ifa = TAILQ_NEXT(ifa, ifa_list)) !=
> > > > -                   TAILQ_END(&ifp->if_addrlist)) {
> > > > +               while ((ifa = TAILQ_NEXT(ifa, ifa_list)) != NULL) {
> > > >                         if (af && af != ifa->ifa_addr->sa_family)
> > > >                                 continue;
> > > >                         ifaaddr = ifa->ifa_addr;
> > > > 
> > > 
> > > -- 
> > > :wq Claudio
> > > 
> > 
> > 

Reply via email to