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