Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 13 Aug 2017 03:12:33 +0700
From:      Eugene Grosbein <eugen@grosbein.net>
To:        Farhan Khan <khanzf@gmail.com>, freebsd-hackers@freebsd.org
Subject:   Re: Monitor kernel variable with ddb(4)
Message-ID:  <598F6131.3090002@grosbein.net>
In-Reply-To: <CAFd4kYCrRgdhc76peh3-vGcS1CQ9RJUWAPJX5_hR7hMNkqiQeQ@mail.gmail.com>
References:  <CAFd4kYCrRgdhc76peh3-vGcS1CQ9RJUWAPJX5_hR7hMNkqiQeQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
13.08.2017 2:42, Farhan Khan пишет:
> Hi all,
> 
> I am trying to figure out where a net80211's vap flags are modified. I see
> that memory is originally allocated here:
> http://src.illumos.org/source/xref/freebsd-head/sys/net/if.c#445. However,
> I cannot figure out where the ifp->if_flags and if->if_drv_flags are ever
> modified in the kernel.
> 
> Someone suggested using ddb(4), so I entered the live debugger using sysctl
> debug.kdb.enter=1
> 
> I then set a breakpoint at if_alloc.
> 
> However, I cannot seem to figure out the next steps to monitor where the
> ifp->if_flags or if->if_drv_flags are updated.
> 
> Full explanation - My kernel module is immediately unloading, but I am not
> certain why. I traced it back in the ieee80211 code to those flags, but not
> sure where they are updated.
> 
> Any ideas? Thank you!

What driver do you use? There are lots of kernel level files
that change ifp->if_flags and if->if_drv_flags:

$ grep -lER '\<if(_drv)?_flags =' /usr/src/sys | wc -l
    148

Perhaps, you need ieee80211_vap_setup() function in the /usr/src/sys/net80211/ieee80211.c
or if_setdrvflagbits() in the /usr/src/sys/net/if.c or one of many driver source files
in /usr/src/sys/dev





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