Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Aug 2013 10:29:08 -0700
From:      Adrian Chadd <adrian@freebsd.org>
To:        Lev Serebryakov <lev@freebsd.org>
Cc:        freebsd-wireless@freebsd.org
Subject:   Re: ath as AP panics
Message-ID:  <CAJ-Vmo=JKZ51N-=NotZm1ba_7AUuEpdUhqP8Ah%2BAHNm-k-bifw@mail.gmail.com>
In-Reply-To: <238348209.20130812212328@serebryakov.spb.ru>
References:  <238348209.20130812212328@serebryakov.spb.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi,

So the if_transmit() change did change a few things. if_start() /
*_ENQUEUE() clears m_nextpkt().

I'd like to know where m_nextpkt() is NOT being cleared.

How about triggering it quickly - put in a panic there rather than
NULL'ing it, then when it immediately panics, do a backtrace?



-adrian

On 12 August 2013 10:23, Lev Serebryakov <lev@freebsd.org> wrote:
> Hello, Freebsd-wireless.
>
>  r254238 with ath used as AP panics in fragment processing. This patch from
>  adrian:
>
> Index: ieee80211_output.c
> ===================================================================
> --- ieee80211_output.c  (revision 254224)
> +++ ieee80211_output.c  (working copy)
> @@ -458,6 +458,16 @@
>         m->m_flags &= ~(M_80211_TX - M_PWR_SAV - M_MORE_DATA);
>
>         /*
> +        * Complain if m->m_nextpkt is set.
> +        *
> +        * The caller should've pulled this apart for us.
> +        */
> +       if (m->m_nextpkt != NULL) {
> +               printf("%s: m_nextpkt not NULL?!\n", __func__);
> +               m->m_nextpkt = NULL;
> +       }
> +
> +       /*
>          * Bump to the packet transmission path.
>          * The mbuf will be consumed here.
>          */
>
>
>  replaces panic with lot of debug output and looks like not a solution, but
> dirty hack. Now I'm trying r254250 with this patch, but it looks like it
> should be same as r254238, as nothing 802.11-related was changed in-between.
>
> --
> // Black Lion AKA Lev Serebryakov <lev@FreeBSD.org>
>
> _______________________________________________
> freebsd-wireless@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-wireless
> To unsubscribe, send any mail to "freebsd-wireless-unsubscribe@freebsd.org"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmo=JKZ51N-=NotZm1ba_7AUuEpdUhqP8Ah%2BAHNm-k-bifw>