Date: Tue, 9 Aug 2005 10:16:17 +0000 (UTC) From: Robert Watson <rwatson@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/net if.c if.h if_var.h rtsock.c Message-ID: <200508091016.j79AGI7d007319@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
rwatson 2005-08-09 10:16:17 UTC FreeBSD src repository Modified files: sys/net if.c if.h if_var.h rtsock.c Log: Rename IFF_RUNNING to IFF_DRV_RUNNING, IFF_OACTIVE to IFF_DRV_OACTIVE, 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200508091016.j79AGI7d007319>