ath as AP panics

Adrian Chadd adrian at freebsd.org
Mon Aug 12 17:29:10 UTC 2013


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 at 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 at FreeBSD.org>
>
> _______________________________________________
> freebsd-wireless at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-wireless
> To unsubscribe, send any mail to "freebsd-wireless-unsubscribe at freebsd.org"


More information about the freebsd-wireless mailing list