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

Robert Watson rwatson at
Tue Aug 9 10:16:18 GMT 2005

rwatson     2005-08-09 10:16:17 UTC

  FreeBSD src repository

  Modified files:
    sys/net              if.c if.h if_var.h rtsock.c 
  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
  MFC after:      7 days
  Revision  Changes    Path
  1.242     +19 -5     src/sys/net/if.c
  1.97      +28 -3     src/sys/net/if.h
  1.102     +5 -1      src/sys/net/if_var.h
  1.125     +3 -2      src/sys/net/rtsock.c

More information about the cvs-src mailing list