Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 11 Nov 2004 18:09:20 -1000
From:      Kip McAtee <kmcatee@firetide.com>
To:        freebsd-hackers@freebsd.org
Cc:        hsu@freebsd.org
Subject:   5.3-BETA5 m_dup() question
Message-ID:  <200411111809.20550.kmcatee@firetide.com>

next in thread | raw e-mail | index | archive | help
Greetings-

I have a symptom where an mbuf is being allocated
and the (int *) ref_count is not a virtual address.
I have a few new instances of calls to m_dup() that might
be causing the problem downstream.

Could this be because the network is allocating from
a 'packet zone' and m_dup() is not?

#define EXT_PACKET      3       /* came out of Packet zone */

That is, given a multicast input packet like this:
mh_flags = 0x403
{MH_ext = {ext_buf = 0xc14c3000, ext_free = 0x0,
ext_args = 0x0, ext_size = 0x800, ref_cnt = 0xc14b5564,
ext_type = 0x3}

after a call to m_dup(), I have a canonical mbuf with
the MH_ext fields uninitialized.

Later mb_ctor_pack() is tripping over constructing a new packet
with a non-virtual address in ref_cnt.

Thanks-
Kip



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200411111809.20550.kmcatee>