Date: Thu, 21 Sep 2006 09:55:43 +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/kern uipc_mbuf.c Message-ID: <200609210955.k8L9thBn069706@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200609210955.k8L9thBn069706>