]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Add per-softc locking to if_tun:
authorrwatson <rwatson@FreeBSD.org>
Mon, 29 Mar 2004 22:16:39 +0000 (22:16 +0000)
committerrwatson <rwatson@FreeBSD.org>
Mon, 29 Mar 2004 22:16:39 +0000 (22:16 +0000)
commit8e41c82b83a283bd515274944d549ab23a03dc94
tree6375464682648d7eb465fa23e67b9f10cd83fea9
parent8aa9f6fafeeaef7ac19532a9ea41665523e187ba
Add per-softc locking to if_tun:

- Add tun_mtx to tun_softc.  Annotate what is (and isn't) locked by it.
- Lock down tun_flags, tun_pid.
- In the output path, cache the value of tun_flags so it's consistent
  when processing a particular packet rather than re-reading the field.
- In general, use unlocked reads for debugging.
- Annotate a couple of places where additional unlocked reads may be
  possible.
- Annotate that tun_pid is used as a bug in tunopen().

if_tun is now largely MPSAFE, although questions remain about some of
the cdevsw fields and how they are synchronized.
sys/net/if_tun.c