summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorMartin Pieuchot <mpi@cvs.openbsd.org>2015-05-26 15:34:01 +0000
committerMartin Pieuchot <mpi@cvs.openbsd.org>2015-05-26 15:34:01 +0000
commit693a071492b06e2c2984a9348b46f55918d62504 (patch)
tree10a11b5847dc0959578869ae823f55af00a82119 /sys
parent9c92d03fd9a729accbf4c16789e914f80540cc40 (diff)
Use if_output() instead of rerolling it.
ok stsp@
Diffstat (limited to 'sys')
-rw-r--r--sys/net80211/ieee80211_input.c15
-rw-r--r--sys/net80211/ieee80211_output.c30
2 files changed, 6 insertions, 39 deletions
diff --git a/sys/net80211/ieee80211_input.c b/sys/net80211/ieee80211_input.c
index c4e29f3f666..aae984764dd 100644
--- a/sys/net80211/ieee80211_input.c
+++ b/sys/net80211/ieee80211_input.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ieee80211_input.c,v 1.133 2015/03/14 03:38:51 jsg Exp $ */
+/* $OpenBSD: ieee80211_input.c,v 1.134 2015/05/26 15:34:00 mpi Exp $ */
/*-
* Copyright (c) 2001 Atsushi Onoe
@@ -827,7 +827,6 @@ ieee80211_deliver_data(struct ieee80211com *ic, struct mbuf *m,
!(ic->ic_flags & IEEE80211_F_NOBRIDGE) &&
eh->ether_type != htons(ETHERTYPE_PAE)) {
struct ieee80211_node *ni1;
- int error, len;
if (ETHER_IS_MULTICAST(eh->ether_dhost)) {
m1 = m_copym2(m, 0, M_COPYALL, M_DONTWAIT);
@@ -844,16 +843,8 @@ ieee80211_deliver_data(struct ieee80211com *ic, struct mbuf *m,
}
}
if (m1 != NULL) {
- len = m1->m_pkthdr.len;
- IFQ_ENQUEUE(&ifp->if_snd, m1, NULL, error);
- if (error)
- ifp->if_oerrors++;
- else {
- if (m != NULL)
- ifp->if_omcasts++;
- ifp->if_obytes += len;
- if_start(ifp);
- }
+ if (if_output(ifp, m1))
+ ifp->if_oerrors++;
}
}
#endif
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: