cvs commit: src/sys/net if.c if.h if_var.h rtsock.c

Robert Watson rwatson at
Thu Aug 25 04:55:49 GMT 2005

rwatson     2005-08-25 04:55:48 UTC

  FreeBSD src repository

  Modified files:        (Branch: RELENG_6)
    sys/net              if.c if.h if_var.h rtsock.c 
  Merge if.c:1.242, if.h:1.97, if_var.h:1.102, rtsock.c:1.125 from HEAD
  to RELENG_6:
    and move both flags from ifnet.if_flags to ifnet.if_drv_flags, making
    and documenting the locking of these flags the responsibility of the
    device driver, not the network stack.  The flags for these two fields
    will be mutually exclusive so that they can be exposed to user space as
    though they were stored in the same variable.
    Provide #defines to provide the old names #ifndef _KERNEL, so that user
    applications (such as ifconfig) can use the old flag names.  Using the
    old names in a device driver will result in a compile error in order to
    help device driver writers adopt the new model.
    When exposing the interface flags to user space, via interface ioctls
    or routing sockets, or the two fields together.  Since the driver flags
    cannot currently be set for user space, no new logic is currently
    required to handle this case.
    Add some assertions that general purpose network stack routines, such
    as if_setflags(), are not improperly used on driver-owned flags.
    With this change, a large number of very minor network stack races are
    closed, subject to correct device driver locking.  Most were likely
    never triggered.
    Driver sweep to follow; many thanks to pjd and bz for the line-by-line
    review they gave this patch.
    Reviewed by:    pjd, bz
  Approved by:    re (scottl)
  Revision   Changes    Path  +19 -5     src/sys/net/if.c   +28 -3     src/sys/net/if.h   +5 -1      src/sys/net/if_var.h  +3 -2      src/sys/net/rtsock.c

More information about the cvs-src mailing list