cvs commit: src/sys/kern kern_descrip.c uipc_socket.c uipc_syscalls.c uipc_usrreq.c src/sys/net raw_cb.c raw_usrreq.c src/sys/netatm atm_socket.c src/sys/netatalk ddp_pcb.c...

Robert Watson rwatson at FreeBSD.org
Sat Jun 12 20:47:50 GMT 2004


rwatson     2004-06-12 20:47:32 UTC

  FreeBSD src repository

  Modified files:
    sys/kern             kern_descrip.c uipc_socket.c 
                         uipc_syscalls.c uipc_usrreq.c 
    sys/net              raw_cb.c raw_usrreq.c 
    sys/netatm           atm_socket.c 
    sys/netatalk         ddp_pcb.c 
    sys/netgraph         ng_ksocket.c 
    sys/netgraph/bluetooth/socket ng_btsocket_hci_raw.c 
                                  ng_btsocket_l2cap.c 
                                  ng_btsocket_l2cap_raw.c 
                                  ng_btsocket_rfcomm.c 
    sys/netinet          in_pcb.c tcp_subr.c 
    sys/netipx           ipx_pcb.c ipx_usrreq.c 
    sys/netnatm          natm.c 
    sys/sys              socketvar.h 
  Log:
  Extend coverage of SOCK_LOCK(so) to include so_count, the socket
  reference count:
  
  - Assert SOCK_LOCK(so) macros that directly manipulate so_count:
    soref(), sorele().
  
  - Assert SOCK_LOCK(so) in macros/functions that rely on the state of
    so_count: sofree(), sotryfree().
  
  - Acquire SOCK_LOCK(so) before calling these functions or macros in
    various contexts in the stack, both at the socket and protocol
    layers.
  
  - In some cases, perform soisdisconnected() before sotryfree(), as
    this could result in frobbing of a non-present socket if
    sotryfree() actually frees the socket.
  
  - Note that sofree()/sotryfree() will release the socket lock even if
    they don't free the socket.
  
  Submitted by:   sam
  Sponsored by:   FreeBSD Foundation
  Obtained from:  BSD/OS
  
  Revision  Changes    Path
  1.233     +3 -0      src/sys/kern/kern_descrip.c
  1.177     +10 -1     src/sys/kern/uipc_socket.c
  1.190     +7 -0      src/sys/kern/uipc_syscalls.c
  1.123     +1 -0      src/sys/kern/uipc_usrreq.c
  1.28      +3 -0      src/sys/net/raw_cb.c
  1.33      +3 -1      src/sys/net/raw_usrreq.c
  1.43      +1 -0      src/sys/netatalk/ddp_pcb.c
  1.20      +1 -0      src/sys/netatm/atm_socket.c
  1.15      +1 -0      src/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c
  1.13      +2 -0      src/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c
  1.12      +1 -0      src/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c
  1.9       +3 -0      src/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c
  1.43      +2 -0      src/sys/netgraph/ng_ksocket.c
  1.148     +1 -0      src/sys/netinet/in_pcb.c
  1.190     +3 -2      src/sys/netinet/tcp_subr.c
  1.28      +1 -0      src/sys/netipx/ipx_pcb.c
  1.40      +2 -1      src/sys/netipx/ipx_usrreq.c
  1.33      +2 -0      src/sys/netnatm/natm.c
  1.119     +8 -1      src/sys/sys/socketvar.h


More information about the cvs-src mailing list