diff options
author | alc <alc@FreeBSD.org> | 2005-03-06 20:09:00 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2005-03-06 20:09:00 +0000 |
commit | 2213f95a5239d5d00ef2065a8f1777b6b2084f8c (patch) | |
tree | abe12aba3c3d16582553b14d5e9632c9ed3f93d4 /sys/sys/mbuf.h | |
parent | 4afa67d7680cea34fe67c52377dd25add391412c (diff) | |
download | FreeBSD-src-2213f95a5239d5d00ef2065a8f1777b6b2084f8c.zip FreeBSD-src-2213f95a5239d5d00ef2065a8f1777b6b2084f8c.tar.gz |
The m_ext reference counts are potentially shared and modified
asynchronously by different threads. Thus, declare as volatile the
reference count that is accessed through m_ext's pointer, ref_cnt.
Revert the previous change, revision 1.144, that casts as volatile a
single dereference of ref_cnt.
Reviewed by: bmilekic, dwhite
Problem reported by: kris
MFC after: 3 days
Diffstat (limited to 'sys/sys/mbuf.h')
-rw-r--r-- | sys/sys/mbuf.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/sys/mbuf.h b/sys/sys/mbuf.h index 1621fa7..0703916 100644 --- a/sys/sys/mbuf.h +++ b/sys/sys/mbuf.h @@ -122,7 +122,7 @@ struct m_ext { (void *, void *); void *ext_args; /* optional argument pointer */ u_int ext_size; /* size of buffer, for ext_free */ - u_int *ref_cnt; /* pointer to ref count info */ + volatile u_int *ref_cnt; /* pointer to ref count info */ int ext_type; /* type of external storage */ }; |