On 04/11/15(Wed) 10:29, David Gwynne wrote:
> if_wi_hostap.c basically inlines what if_enqueue does, but badly.
>
> more specifically, it uses IF_FOO operations to manipulate the
> interfaces send queue, but they only work if you're using priq. if
> you have hfsc on the interface it's not going to work well.
>
> this makes it just call if_enqueue.
>
> ok?
ok mpi@
>
> Index: if_wi_hostap.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/ic/if_wi_hostap.c,v
> retrieving revision 1.47
> diff -u -p -r1.47 if_wi_hostap.c
> --- if_wi_hostap.c 18 Nov 2014 02:37:30 -0000 1.47
> +++ if_wi_hostap.c 4 Nov 2015 00:27:37 -0000
> @@ -1163,18 +1163,7 @@ wihap_data_input(struct wi_softc *sc, st
>
> /* Queue up for repeating.
> */
> - if (IF_QFULL(&ifp->if_snd)) {
> - IF_DROP(&ifp->if_snd);
> - m_freem(m);
> - }
> - else {
> - ifp->if_obytes += m->m_pkthdr.len;
> - if (m->m_flags & M_MCAST)
> - ifp->if_omcasts++;
> - IF_ENQUEUE(&ifp->if_snd, m);
> - if ((ifp->if_flags & IFF_OACTIVE) == 0)
> - (*ifp->if_start)(ifp);
> - }
> + if_enqueue(ifp, m);
> return (!mcast);
> }
>
>