diff options
Diffstat (limited to 'sys/net80211/ieee80211_output.c')
-rw-r--r-- | sys/net80211/ieee80211_output.c | 30 |
1 files changed, 3 insertions, 27 deletions
diff --git a/sys/net80211/ieee80211_output.c b/sys/net80211/ieee80211_output.c index cadb64ca354..82bd609d2e5 100644 --- a/sys/net80211/ieee80211_output.c +++ b/sys/net80211/ieee80211_output.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ieee80211_output.c,v 1.94 2015/03/14 03:38:51 jsg Exp $ */ +/* $OpenBSD: ieee80211_output.c,v 1.95 2015/05/26 15:34:00 mpi Exp $ */ /* $NetBSD: ieee80211_output.c,v 1.13 2004/05/31 11:02:55 dyoung Exp $ */ /*- @@ -113,8 +113,7 @@ ieee80211_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, { struct ieee80211_frame *wh; struct m_tag *mtag; - int s, len, error = 0; - u_short mflags; + int error = 0; /* Interface has to be up and running */ if ((ifp->if_flags & (IFF_UP | IFF_RUNNING)) != @@ -143,30 +142,7 @@ ieee80211_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, IEEE80211_FC0_TYPE_CTL) return (EINVAL); - /* - * Queue message on interface without adding any - * further headers, and start output if interface not - * yet active. - */ - mflags = m->m_flags; - len = m->m_pkthdr.len; - s = splnet(); - IFQ_ENQUEUE(&ifp->if_snd, m, NULL, error); - if (error) { - /* mbuf is already freed */ - splx(s); - printf("%s: failed to queue raw tx frame\n", - ifp->if_xname); - return (error); - } - ifp->if_obytes += len; - if (mflags & M_MCAST) - ifp->if_omcasts++; - if ((ifp->if_flags & IFF_OACTIVE) == 0) - (*ifp->if_start)(ifp); - splx(s); - - return (error); + return (if_output(ifp, m)); } fallback: |