cvs commit: src/sys/net if_atmsubr.c src/sys/netnatm natm.c natm.h natm_pcb.c natm_proto.c

Robert Watson rwatson at FreeBSD.org
Mon Jul 18 16:55:47 GMT 2005


rwatson     2005-07-18 16:55:47 UTC

  FreeBSD src repository

  Modified files:
    sys/net              if_atmsubr.c 
    sys/netnatm          natm.c natm.h natm_pcb.c natm_proto.c 
  Log:
  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)
  
  Revision  Changes    Path
  1.38      +9 -6      src/sys/net/if_atmsubr.c
  1.38      +56 -51    src/sys/netnatm/natm.c
  1.11      +7 -0      src/sys/netnatm/natm.h
  1.16      +3 -5      src/sys/netnatm/natm_pcb.c
  1.16      +2 -3      src/sys/netnatm/natm_proto.c


More information about the cvs-all mailing list