aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/iwn
diff options
context:
space:
mode:
authorAdrian Chadd <adrian@FreeBSD.org>2015-10-12 04:55:20 +0000
committerAdrian Chadd <adrian@FreeBSD.org>2015-10-12 04:55:20 +0000
commitd957a93abe82adf570931b97a918d9555a655a1e (patch)
tree0ad5a3585c48c4d2f6705ea7eb28cc7313a8c059 /sys/dev/iwn
parentd3a4ade3b8232efc2338e59219d1cf108f6ee930 (diff)
downloadsrc-d957a93abe82adf570931b97a918d9555a655a1e.tar.gz
src-d957a93abe82adf570931b97a918d9555a655a1e.zip
net80211: move ieee80211_free_node() call on error from ic_raw_xmit() to ieee80211_raw_output().
This doesn't free the mbuf upon error; the driver ic_raw_xmit method is still doing that. Submitted by: <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3774
Notes
Notes: svn path=/head/; revision=289165
Diffstat (limited to 'sys/dev/iwn')
-rw-r--r--sys/dev/iwn/if_iwn.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/sys/dev/iwn/if_iwn.c b/sys/dev/iwn/if_iwn.c
index fe36294bbeba..0cdeafb5f898 100644
--- a/sys/dev/iwn/if_iwn.c
+++ b/sys/dev/iwn/if_iwn.c
@@ -4875,7 +4875,6 @@ iwn_raw_xmit(struct ieee80211_node *ni, struct mbuf *m,
DPRINTF(sc, IWN_DEBUG_XMIT | IWN_DEBUG_TRACE, "->%s begin\n", __func__);
if ((sc->sc_flags & IWN_FLAG_RUNNING) == 0) {
- ieee80211_free_node(ni);
m_freem(m);
return ENETDOWN;
}
@@ -4889,9 +4888,6 @@ iwn_raw_xmit(struct ieee80211_node *ni, struct mbuf *m,
if (sc->sc_beacon_wait) {
if (iwn_xmit_queue_enqueue(sc, m) != 0) {
m_freem(m);
- if_inc_counter(ni->ni_vap->iv_ifp,
- IFCOUNTER_OERRORS, 1);
- ieee80211_free_node(ni);
IWN_UNLOCK(sc);
return (ENOBUFS);
}
@@ -4913,10 +4909,7 @@ iwn_raw_xmit(struct ieee80211_node *ni, struct mbuf *m,
*/
error = iwn_tx_data_raw(sc, m, ni, params);
}
- if (error != 0) {
- /* NB: m is reclaimed on tx failure */
- ieee80211_free_node(ni);
- } else
+ if (error == 0)
sc->sc_tx_timer = 5;
IWN_UNLOCK(sc);