Date: Sat, 05 Nov 2005 20:47:30 +0100 From: Andre Oppermann <andre@freebsd.org> To: Gleb Smirnoff <glebius@FreeBSD.org> Cc: sam@FreeBSD.org, freebsd-current@FreeBSD.org, Giorgos Keramidas <keramida@linux.gr>, thierry@herbelot.com Subject: Re: panic: mb_dtor_pack: ref_cnt != 1 Message-ID: <436D0C52.7A02137F@freebsd.org> References: <20051104092724.GA33945@xor.obsecurity.org> <436B885B.6010609@freebsd.org> <20051104163526.GC82727@flame.pc> <200511041833.30955.thierry@herbelot.com> <436BA8B5.9070104@freebsd.org> <20051105003420.GM91530@cell.sick.ru> <20051105034105.GA906@flame.pc> <20051105080116.GR91530@cell.sick.ru> <20051105084924.GT91530@cell.sick.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
Gleb Smirnoff wrote: > > On Sat, Nov 05, 2005 at 11:01:16AM +0300, Gleb Smirnoff wrote: > T> On Sat, Nov 05, 2005 at 05:41:05AM +0200, Giorgos Keramidas wrote: > T> G> On 2005-11-05 03:34, Gleb Smirnoff <glebius@freebsd.org> wrote: > T> G> > Andre, Thierry, Sam, > T> G> > > T> G> > this patch should fix the problems > T> G> > T> G> But it panics in mb_dtor_pack() because ext_type != EXT_CLUSTER > T> G> when my ath0 interface tries to associate with an AP. > T> G> > T> G> I had to change this too, to make things work: > T> > T> Updated patch. > > One more update. Since I have removed this block: > > if (*(m->m_ext.ref_cnt) == 0) > *(m->m_ext.ref_cnt) = 1; > > I have also altered KASSERT in mb_dtor_pack(). I don't like > inventing an incorrect invariant check and then adding helpers > to avoid it being triggered. This block is still required for the packet zone as the refcount is not re-initialized for mbuf+cluster out of the packet zone. You may up with wrong refcounts if you remove this check. It is not directly related to the KASSERT in mb_dtor_pack() but to the way atomic_fetchadd_int() works in concurrency situations. I have committed a fix to the same effect as your proposed patch. When UMA is fixed this may be reverted again. -- Andre
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?436D0C52.7A02137F>