diff options
author | Adrian Chadd <adrian@FreeBSD.org> | 2013-11-06 17:20:49 +0000 |
---|---|---|
committer | Adrian Chadd <adrian@FreeBSD.org> | 2013-11-06 17:20:49 +0000 |
commit | c6d5b60008be8fa437e25684baad644fcce2846d (patch) | |
tree | e5fe51cfd795b5e598374a4015d85f007e395472 /sys/net80211/ieee80211_output.c | |
parent | f26725de09204e98670b3e35b9685c309f5a145c (diff) | |
download | src-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.c | 12 |
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 |