Date: Fri, 10 Nov 2006 13:34:55 +0000 (UTC) From: Randall Stewart <rrs@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/netinet sctp_output.c sctputil.c Message-ID: <200611101334.kAADYtGs021533@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
rrs 2006-11-10 13:34:55 UTC FreeBSD src repository Modified files: sys/netinet sctp_output.c sctputil.c Log: This patch fixes a LOR that happens during INIT-ACK collision. We were calling select_a_tag() inside sctp_send_initate_ack(). During collision cases we have a stcb and thus a SCTP_LOCK. When we call select_a_tag it (below it) locks the INFO lock. We now 1) pre-select the nonce-tie-tags in sctputil.c during setup of a tcb. 2) In the other case where we have to select tags, we unlock after incr the ref cnt (so assoc won't go away0 and then do the tag selection followed by a relock and decr the refcnt. Approved by: gnn Revision Changes Path 1.4 +13 -9 src/sys/netinet/sctp_output.c 1.5 +4 -0 src/sys/netinet/sctputil.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200611101334.kAADYtGs021533>