diff options
author | ngie <ngie@FreeBSD.org> | 2015-10-12 08:20:41 +0000 |
---|---|---|
committer | ngie <ngie@FreeBSD.org> | 2015-10-12 08:20:41 +0000 |
commit | 40fbae4ade405f27176b15190bc55e19b65f48ef (patch) | |
tree | 8c49a7828c274f2da261db8916574f9a63fa04b6 /sys/dev/bwn/if_bwn.c | |
parent | b60afb3d49570c8d2c8519e2a2ee1288349a080a (diff) | |
parent | 67366adb20c44f7e7f9f3739419e8a0a82157433 (diff) | |
download | FreeBSD-src-40fbae4ade405f27176b15190bc55e19b65f48ef.zip FreeBSD-src-40fbae4ade405f27176b15190bc55e19b65f48ef.tar.gz |
MFhead @ r289173
Diffstat (limited to 'sys/dev/bwn/if_bwn.c')
-rw-r--r-- | sys/dev/bwn/if_bwn.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/sys/dev/bwn/if_bwn.c b/sys/dev/bwn/if_bwn.c index 15f6f27..0746a8e 100644 --- a/sys/dev/bwn/if_bwn.c +++ b/sys/dev/bwn/if_bwn.c @@ -2684,29 +2684,26 @@ bwn_raw_xmit(struct ieee80211_node *ni, struct mbuf *m, struct ieee80211com *ic = ni->ni_ic; struct bwn_softc *sc = ic->ic_softc; struct bwn_mac *mac = sc->sc_curmac; + int error; if ((sc->sc_flags & BWN_FLAG_RUNNING) == 0 || mac->mac_status < BWN_MAC_STATUS_STARTED) { - ieee80211_free_node(ni); m_freem(m); return (ENETDOWN); } BWN_LOCK(sc); if (bwn_tx_isfull(sc, m)) { - ieee80211_free_node(ni); m_freem(m); BWN_UNLOCK(sc); return (ENOBUFS); } - if (bwn_tx_start(sc, ni, m) != 0) { - if (ni != NULL) - ieee80211_free_node(ni); - } - sc->sc_watchdog_timer = 5; + error = bwn_tx_start(sc, ni, m); + if (error == 0) + sc->sc_watchdog_timer = 5; BWN_UNLOCK(sc); - return (0); + return (error); } /* |