freebsd-nq/sys/netnatm
Robert Watson f002340544 Lock down netnatm and mark as MPSAFE:
- Introduce a subsystem mutex, natm_mtx, manipulated with accessor macros
  NATM_LOCK_INIT(), NATM_LOCK(), NATM_UNLOCK(), NATM_LOCK_ASSERT().  It
  protects the consistency of pcb-related data structures.  Finer grained
  locking is possible, but should be done in the context of specific
  measurements (as very little work is done in netnatm -- most is in the
  ATM device driver or socket layer, so there's probably not much
  contention).

- Remove GIANT_REQUIRED, mark as NETISR_MPSAFE, remove
  NET_NEEDS_GIANT("netnatm").

- Conditionally acquire Giant when entering network interfaces for
  ifp->if_ioctl() using IFF_LOCKGIANT(ifp)/IFF_UNLOCKGIANT(ifp) in order
  to coexist with non-MPSAFE atm ifnet drivers..

- De-spl.

MFC after:	2 weeks
Reviewed by:	harti, bms (various versions)
2005-07-18 16:55:46 +00:00
..
natm_pcb.c Lock down netnatm and mark as MPSAFE: 2005-07-18 16:55:46 +00:00
natm_proto.c Lock down netnatm and mark as MPSAFE: 2005-07-18 16:55:46 +00:00
natm.c Lock down netnatm and mark as MPSAFE: 2005-07-18 16:55:46 +00:00
natm.h Lock down netnatm and mark as MPSAFE: 2005-07-18 16:55:46 +00:00