kernel - Fix numerous MP issues with sockbuf's and ssb_flags part 1/2
authorMatthew Dillon <dillon@apollo.backplane.com>
Mon, 6 Sep 2010 20:34:01 +0000 (13:34 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Mon, 6 Sep 2010 20:34:01 +0000 (13:34 -0700)
commit14343ad3b815bafa1bcec3656de2d614fcc75bec
tree2d07553233bf65c7e6ea2e4b0aa6eb18963c5765
parentf082c735529eb649d695aa20bdf134b324348010
kernel - Fix numerous MP issues with sockbuf's and ssb_flags part 1/2

* Use atomic ops for ssb_flags handling

* Use atomic_cmpset_int() to interlock SSB_LOCK with SSB_WANT, and
  SSB_WAIT with SSB_WAKEUP.

  Note in particular that WAIT/WAKEUP assumes the client side of the
  socket is single threaded via an appropriate lock.  This needs more
  work.
18 files changed:
sys/kern/sys_socket.c
sys/kern/uipc_msg.c
sys/kern/uipc_socket.c
sys/kern/uipc_socket2.c
sys/kern/uipc_usrreq.c
sys/kern/vfs_aio.c
sys/net/accf_data/accf_data.c
sys/net/accf_http/accf_http.c
sys/netgraph/ksocket/ng_ksocket.c
sys/netinet/tcp_input.c
sys/netinet/tcp_output.c
sys/netinet/tcp_usrreq.c
sys/netproto/smb/smb_trantcp.c
sys/sys/socketvar.h
sys/sys/socketvar2.h
sys/vfs/nfs/nfs_socket.c
sys/vfs/nfs/nfs_syscalls.c
sys/vfs/portal/portal_vnops.c