From c0f938106d1ca5c34758198afe9bce71202f462d Mon Sep 17 00:00:00 2001 From: gavin Date: Tue, 10 Dec 2013 19:12:16 +0000 Subject: [PATCH] Merge r259172 from stable/10 (head r257754 by adrian): Don't return ENOBUFS if the transmit path handles the frame but queues it (eg in power save.) PR: kern/183727 Approved by: re (glebius) git-svn-id: svn://svn.freebsd.org/base/releng/10.0@259184 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f --- sys/net80211/ieee80211_output.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/sys/net80211/ieee80211_output.c b/sys/net80211/ieee80211_output.c index a7aa7d9e..5d958d13 100644 --- a/sys/net80211/ieee80211_output.c +++ b/sys/net80211/ieee80211_output.c @@ -143,8 +143,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)) { @@ -155,8 +159,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 @@ -168,7 +173,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 -- 2.45.0