svn commit: r214388 - stable/8/sys/netinet
Randall Stewart
rrs at FreeBSD.org
Tue Oct 26 18:56:56 UTC 2010
Author: rrs
Date: Tue Oct 26 18:56:55 2010
New Revision: 214388
URL: http://svn.freebsd.org/changeset/base/214388
Log:
MFC of 209644
Log is:
Fix a bug that will cause a panic. Basically
a read-lock is being called to check the vtag-timewait cache.
Then in two cases (where a vtag is bad i.e. in the time-wait
state) the write-unlokc is called NOT the read-unlock. Under
conditions where lots of associations are coming and going
this willc ause the system to panic with invariants on.
Modified:
stable/8/sys/netinet/sctp_pcb.c
Directory Properties:
stable/8/sys/ (props changed)
stable/8/sys/amd64/include/xen/ (props changed)
stable/8/sys/cddl/contrib/opensolaris/ (props changed)
stable/8/sys/contrib/dev/acpica/ (props changed)
stable/8/sys/contrib/pf/ (props changed)
stable/8/sys/dev/xen/xenpci/ (props changed)
Modified: stable/8/sys/netinet/sctp_pcb.c
==============================================================================
--- stable/8/sys/netinet/sctp_pcb.c Tue Oct 26 18:32:51 2010 (r214387)
+++ stable/8/sys/netinet/sctp_pcb.c Tue Oct 26 18:56:55 2010 (r214388)
@@ -6499,7 +6499,7 @@ sctp_is_vtag_good(struct sctp_inpcb *inp
continue;
}
/* Its a used tag set */
- SCTP_INP_INFO_WUNLOCK();
+ SCTP_INP_INFO_RUNLOCK();
return (0);
}
}
@@ -6528,7 +6528,7 @@ skip_vtag_check:
(twait_block->vtag_block[i].lport == lport) &&
(twait_block->vtag_block[i].rport == rport)) {
/* Bad tag, sorry :< */
- SCTP_INP_INFO_WUNLOCK();
+ SCTP_INP_INFO_RUNLOCK();
return (0);
}
}
More information about the svn-src-all
mailing list