cvs commit: src/sys/kern uipc_mbuf.c
Randall Stewart
rrs at FreeBSD.org
Thu Sep 21 02:55:47 PDT 2006
rrs 2006-09-21 09:55:43 UTC
FreeBSD src repository
Modified files:
sys/kern uipc_mbuf.c
Log:
atomic_fetchadd_int is used by mb_free_ext(), but it
returns the previous value that the "add" effected (In
this case we are adding -1), afterwhich we compare it
to '0'... to see if we free the mbuf... we should
be comparing it to '1'... Note that this only effects
when there is contention since there is a first part
to the comparison that checks to see if its '1'. So
this bug would only crop up if two CPU's are trying
to free the same mbuf refcount at the same time. This
will happen in SCTP but I doubt can happen in TCP or
UDP.
PR: N/A
Submitted by: rrs
Reviewed by: gnn,sam
Approved by: gnn,sam
Revision Changes Path
1.167 +1 -1 src/sys/kern/uipc_mbuf.c
More information about the cvs-src
mailing list