Re: Page fault in IFNET_WLOCK_ASSERT [if.c and pccbb.c]

From: Harsha <inpcb.harsha_at_gmail.com>
Date: Sat, 17 Oct 2009 23:28:38 -0700
Hi Robert,

Apologies for not getting earlier.

On Mon, Oct 12, 2009 at 6:46 AM, Robert N. M. Watson
<rwatson_at_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
Received on Sun Oct 18 2009 - 04:28:38 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:57 UTC