Date: Tue, 12 Dec 2000 08:39:27 -0800 (PST) From: John Baldwin <jhb@FreeBSD.org> To: Alfred Perlstein <bright@wintelcom.net> Cc: jasone@FreeBSD.org, net@FreeBSD.org, Bosko Milekic <bmilekic@technokratis.com> Subject: RE: MEXT_IS_REF broken. Message-ID: <XFMail.001212083927.jhb@FreeBSD.org> In-Reply-To: <20001212014429.Y16205@fw.wintelcom.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On 12-Dec-00 Alfred Perlstein wrote:
> grr...
>
> considering this:
>
>#define MEXT_IS_REF(m) ((m)->m_ext.ref_cnt->refcnt > 1)
>
>#define MEXT_REM_REF(m) do { \
> KASSERT((m)->m_ext.ref_cnt->refcnt > 0, ("m_ext refcnt < 0")); \
> atomic_subtract_long(&((m)->m_ext.ref_cnt->refcnt), 1); \
> } while(0)
>
> this:
>
>#define MEXTFREE(m) do { \
> struct mbuf *_mmm = (m); \
> \
> if (MEXT_IS_REF(_mmm)) \
> MEXT_REM_REF(_mmm); \
>
>
> is not mpsafe. we _NEED_ some type that allows atomic dec and test
> for 0.
http://www.FreeBSD.org/~jhb/patches/refcount.patch
> thanks,
> -Alfred
--
John Baldwin <jhb@FreeBSD.org> -- http://www.FreeBSD.org/~jhb/
PGP Key: http://www.baldwin.cx/~john/pgpkey.asc
"Power Users Use the Power to Serve!" - http://www.FreeBSD.org/
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.001212083927.jhb>
