cvs commit: src/sys/net if.c src/sys/netinet in.c in.h

Robert Watson rwatson at
Thu Sep 29 13:57:08 PDT 2005

rwatson     2005-09-29 20:57:07 UTC

  FreeBSD src repository

  Modified files:        (Branch: RELENG_6)
    sys/net              if.c 
    sys/netinet          in.c in.h 
  Merge if.c:1.247, in.c:1.88, in.h:1.92 from HEAD to RELENG_6:
    Take a first cut at cleaning up ifnet removal and multicast socket
    panics, which occur when stale ifnet pointers are left in struct
    moptions hung off of inpcbs:
    - Add in_ifdetach(), which matches in6_ifdetach(), and allows the
      protocol to perform early tear-down on the interface early in
    - Annotate that if_detach() needs careful consideration.
    - Remove calls to in_pcbpurgeif0() in the handling of SIOCDIFADDR --
      this is not the place to detect interface removal!  This also
      removes what is basically a nasty (and now unnecessary) hack.
    - Invoke in_pcbpurgeif0() from in_ifdetach(), in both raw and UDP
      IPv4 sockets.
    It is now possible to run the msocket_ifnet_remove regression test
    using HEAD without panicking.
    Reported by:  Gavin Atkinson <gavin dot atkinson at ury dot york dot ac dot uk>
  Approved by:    re (scottl)
  Revision    Changes    Path  +7 -0      src/sys/net/if.c    +12 -8     src/sys/netinet/in.c    +1 -0      src/sys/netinet/in.h

More information about the cvs-src mailing list