Date: Sat, 17 Oct 2009 23:28:38 -0700 From: Harsha <inpcb.harsha@gmail.com> To: "Robert N. M. Watson" <rwatson@freebsd.org> Cc: freebsd-current@freebsd.org, net@freebsd.org Subject: Re: Page fault in IFNET_WLOCK_ASSERT [if.c and pccbb.c] Message-ID: <e1b1c5880910172328s6bc0c53ctc782b9993ffbdb00@mail.gmail.com> In-Reply-To: <FE5F0845-B909-4B9B-A999-DAA7D8F4E56D@freebsd.org> References: <e1b1c5880910111226o65e0d1a9va975f4cd837271bb@mail.gmail.com> <alpine.BSF.2.00.0910112126050.48605@fledge.watson.org> <e1b1c5880910112138x1b46ff0eo39c10691a978c164@mail.gmail.com> <FE5F0845-B909-4B9B-A999-DAA7D8F4E56D@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi Robert, Apologies for not getting earlier. On Mon, Oct 12, 2009 at 6:46 AM, Robert N. M. Watson <rwatson@freebsd.org> wrote: > > Looks like a NULL pointer dereference, so perhaps a more traditional bug -- > could you convert ifindex_alloc_locked+0x71 to a line of code? You can do > this using kgdb on the kernel symbols file, perhaps "l > *ifindex_alloc_locked+0x71". It is the for loop in ifindex_alloc_locked() function- for (idx = 1; idx <= V_if_index; idx++) idx is a local variable, so I figured it is V_if_index is what is causing the page fault. It does look like a NULL pointer reference - I see that V_if_index comes from that vnet instance's value and uses the macro VNET_VNET_PTR() down the chain. Since the call chain is coming from a new thread cbb_event_thread, I believe that this thread's vnet context needs to be set using CURVNET_SET(). I'll try this tomorrow, but if think I'm not on the right track or want me to try something else please let me know. Many thanks, Harsha
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?e1b1c5880910172328s6bc0c53ctc782b9993ffbdb00>