Date: Mon, 12 Aug 2013 10:34:04 -0700 From: Adrian Chadd <adrian@freebsd.org> To: lev@freebsd.org Cc: freebsd-wireless@freebsd.org Subject: Re: ath as AP panics Message-ID: <CAJ-VmokU8EdEnNuvQLXdRN0LjRjcQK%2B8rrupyojpPe2fNk6U1A@mail.gmail.com> In-Reply-To: <1391593482.20130812213235@serebryakov.spb.ru> References: <238348209.20130812212328@serebryakov.spb.ru> <CAJ-Vmo=JKZ51N-=NotZm1ba_7AUuEpdUhqP8Ah%2BAHNm-k-bifw@mail.gmail.com> <1391593482.20130812213235@serebryakov.spb.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
Hm. OK. What I want is the code path _in_ that's queuing a frame via ieee80211_vap_transmit() with m_nextpkt set to NON-NULL. -adrian On 12 August 2013 10:32, Lev Serebryakov <lev@freebsd.org> wrote: > Hello, Adrian. > You wrote 12 =C1=D7=C7=D5=D3=D4=C1 2013 =C7., 21:29:08: > > AC> So the if_transmit() change did change a few things. if_start() / > AC> *_ENQUEUE() clears m_nextpkt(). > > AC> I'd like to know where m_nextpkt() is NOT being cleared. > > AC> How about triggering it quickly - put in a panic there rather than > AC> NULL'ing it, then when it immediately panics, do a backtrace? > So, replace printf() here with panic()? > Now I have backtrace from panic BEFORE this diagnostic patch is applied= . > Isn't it enough? > > #0 doadump (textdump=3D1) at pcpu.h:236 > 236 pcpu.h: No such file or directory. > in pcpu.h > (kgdb) #0 doadump (textdump=3D1) at pcpu.h:236 > #1 0xffffffff804b4505 in kern_reboot (howto=3D260) > at /data/src/sys/kern/kern_shutdown.c:447 > #2 0xffffffff804b48e4 in panic (fmt=3D<value optimized out>) > at /data/src/sys/kern/kern_shutdown.c:754 > #3 0xffffffff806c5b5a in trap_fatal (frame=3D<value optimized out>, > eva=3D<value optimized out>) at /data/src/sys/amd64/amd64/trap.c:873 > #4 0xffffffff806c5dc7 in trap_pfault (frame=3D0x0, usermode=3D0) > at /data/src/sys/amd64/amd64/trap.c:699 > #5 0xffffffff806c54f4 in trap (frame=3D0xffffff812205e7a0) > at /data/src/sys/amd64/amd64/trap.c:463 > #6 0xffffffff806af7b3 in calltrap () > at /data/src/sys/amd64/amd64/exception.S:232 > #7 0xffffffff802ef411 in ath_transmit (ifp=3D0xfffffe0001a9a800, > m=3D<value optimized out>) at /data/src/sys/dev/ath/if_ath.c:2953 > #8 0xffffffff8059a1e6 in ieee80211_vap_pkt_send_dest ( > vap=3D<value optimized out>, m=3D<value optimized out>, ni=3D0xffffff= 8000f96000) > at /data/src/sys/net80211/ieee80211_output.c:239 > #9 0xffffffff8059ae3b in ieee80211_vap_transmit (ifp=3D<value optimized = out>, > m=3D<value optimized out>) at /data/src/sys/net80211/ieee80211_output= .c:389 > #10 0xffffffff8059f5ff in pwrsave_flushq (ni=3D<value optimized out>) > at /data/src/sys/net80211/ieee80211_power.c:479 > #11 0xffffffff80588209 in hostap_input (ni=3D0xffffff8000f96000, > m=3D<value optimized out>, rssi=3D43, nf=3D-96) > at /data/src/sys/net80211/ieee80211_hostap.c:648 > #12 0xffffffff8030825a in ath_rx_pkt (sc=3D0xffffff80007ba000, > rs=3D0xffffff8000880d78, status=3DHAL_OK, tsf=3D<value optimized out>= , nf=3D-96, > qtype=3D<value optimized out>, m=3D<value optimized out>) > at /data/src/sys/dev/ath/if_ath_rx.c:808 > #13 0xffffffff80308ec0 in ath_rx_proc (sc=3D0xffffff80007ba000, resched= =3D1) > at /data/src/sys/dev/ath/if_ath_rx.c:995 > #14 0xffffffff804f2426 in taskqueue_run_locked (queue=3D0xfffffe0001a59b0= 0) > at /data/src/sys/kern/subr_taskqueue.c:333 > #15 0xffffffff804f2ca8 in taskqueue_thread_loop (arg=3D<value optimized o= ut>) > at /data/src/sys/kern/subr_taskqueue.c:535 > #16 0xffffffff804885e5 in fork_exit ( > callout=3D0xffffffff804f2c00 <taskqueue_thread_loop>, > arg=3D0xffffff80007ba830, frame=3D0xffffff812205ec00) > at /data/src/sys/kern/kern_fork.c:991 > #17 0xffffffff806afcee in fork_trampoline () > at /data/src/sys/amd64/amd64/exception.S:606 > > > > > -- > // Black Lion AKA Lev Serebryakov <lev@FreeBSD.org> >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-VmokU8EdEnNuvQLXdRN0LjRjcQK%2B8rrupyojpPe2fNk6U1A>