Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 5 Nov 2012 09:26:27 +0000 (UTC)
From:      Andre Oppermann <andre@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r242603 - in user/andre/tcp_workqueue/sys: kern netinet
Message-ID:  <201211050926.qA59QR14069284@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: andre
Date: Mon Nov  5 09:26:27 2012
New Revision: 242603
URL: http://svnweb.freebsd.org/changeset/base/242603

Log:
  Annotate possible socket locking issues for investigation.

Modified:
  user/andre/tcp_workqueue/sys/kern/uipc_socket.c
  user/andre/tcp_workqueue/sys/netinet/tcp_input.c
  user/andre/tcp_workqueue/sys/netinet/tcp_syncache.c

Modified: user/andre/tcp_workqueue/sys/kern/uipc_socket.c
==============================================================================
--- user/andre/tcp_workqueue/sys/kern/uipc_socket.c	Mon Nov  5 09:23:21 2012	(r242602)
+++ user/andre/tcp_workqueue/sys/kern/uipc_socket.c	Mon Nov  5 09:26:27 2012	(r242603)
@@ -519,6 +519,7 @@ sonewconn(struct socket *head, int conns
 		    __func__, head->so_pcb);
 		return (NULL);
 	}
+	/* XXXAO: "so" is not locked. */
 	if ((head->so_options & SO_ACCEPTFILTER) != 0)
 		connstatus = 0;
 	so->so_head = head;

Modified: user/andre/tcp_workqueue/sys/netinet/tcp_input.c
==============================================================================
--- user/andre/tcp_workqueue/sys/netinet/tcp_input.c	Mon Nov  5 09:23:21 2012	(r242602)
+++ user/andre/tcp_workqueue/sys/netinet/tcp_input.c	Mon Nov  5 09:26:27 2012	(r242603)
@@ -1034,6 +1034,8 @@ relocked:
 	 * attempt or the completion of a previous one.  Because listen
 	 * sockets are never in TCPS_ESTABLISHED, the V_tcbinfo lock will be
 	 * held in this case.
+	 *
+	 * XXXAO: "so" is not locked!
 	 */
 	if (so->so_options & SO_ACCEPTCONN) {
 		struct in_conninfo inc;

Modified: user/andre/tcp_workqueue/sys/netinet/tcp_syncache.c
==============================================================================
--- user/andre/tcp_workqueue/sys/netinet/tcp_syncache.c	Mon Nov  5 09:23:21 2012	(r242602)
+++ user/andre/tcp_workqueue/sys/netinet/tcp_syncache.c	Mon Nov  5 09:26:27 2012	(r242603)
@@ -642,6 +642,8 @@ done:
 
 /*
  * Build a new TCP socket structure from a syncache entry.
+ *
+ * XXXAO: Neither "lso" nor "so" is locked!
  */
 static struct socket *
 syncache_socket(struct syncache *sc, struct socket *lso, struct mbuf *m)
@@ -907,6 +909,8 @@ abort2:
  * in the syncache, and if its there, we pull it out of
  * the cache and turn it into a full-blown connection in
  * the SYN-RECEIVED state.
+ *
+ * XXXAO: Neither "lso" nor "lsop" is locked!
  */
 int
 syncache_expand(struct in_conninfo *inc, struct tcpopt *to, struct tcphdr *th,



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201211050926.qA59QR14069284>