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>
