aboutsummaryrefslogtreecommitdiff
path: root/sys/net80211/ieee80211_output.c
diff options
context:
space:
mode:
authorAdrian Chadd <adrian@FreeBSD.org>2013-11-06 17:20:49 +0000
committerAdrian Chadd <adrian@FreeBSD.org>2013-11-06 17:20:49 +0000
commitc6d5b60008be8fa437e25684baad644fcce2846d (patch)
treee5fe51cfd795b5e598374a4015d85f007e395472 /sys/net80211/ieee80211_output.c
parentf26725de09204e98670b3e35b9685c309f5a145c (diff)
downloadsrc-c6d5b60008be8fa437e25684baad644fcce2846d.tar.gz
src-c6d5b60008be8fa437e25684baad644fcce2846d.zip
Don't return ENOBUFS if the transmit path handles the frame but queues it (eg in power save.)
This is definitely an MFC candidate for 10.0-REL. MFC after: 1 week
Notes
Notes: svn path=/head/; revision=257754
Diffstat (limited to 'sys/net80211/ieee80211_output.c')
-rw-r--r--sys/net80211/ieee80211_output.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/sys/net80211/ieee80211_output.c b/sys/net80211/ieee80211_output.c
index c5460ecb52a3..f75820340389 100644
--- a/sys/net80211/ieee80211_output.c
+++ b/sys/net80211/ieee80211_output.c
@@ -144,8 +144,12 @@ ieee80211_vap_pkt_send_dest(struct ieee80211vap *vap, struct mbuf *m,
*/
(void) ieee80211_pwrsave(ni, m);
ieee80211_free_node(ni);
- /* XXX better status? */
- return (ENOBUFS);
+
+ /*
+ * We queued it fine, so tell the upper layer
+ * that we consumed it.
+ */
+ return (0);
}
/* calculate priority so drivers can find the tx queue */
if (ieee80211_classify(ni, m)) {
@@ -156,8 +160,9 @@ ieee80211_vap_pkt_send_dest(struct ieee80211vap *vap, struct mbuf *m,
ifp->if_oerrors++;
m_freem(m);
ieee80211_free_node(ni);
+
/* XXX better status? */
- return (ENOBUFS);
+ return (0);
}
/*
* Stash the node pointer. Note that we do this after
@@ -169,7 +174,6 @@ ieee80211_vap_pkt_send_dest(struct ieee80211vap *vap, struct mbuf *m,
BPF_MTAP(ifp, m); /* 802.3 tx */
-
/*
* Check if A-MPDU tx aggregation is setup or if we
* should try to enable it. The sta must be associated