cvs commit: src/sys/netinet sctp_output.c sctputil.c
Randall Stewart
rrs at FreeBSD.org
Fri Nov 10 13:34:56 UTC 2006
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
More information about the cvs-src
mailing list