Author: adrian Date: Sun Mar 15 20:35:25 2015 New Revision: 280070 URL: https://svnweb.freebsd.org/changeset/base/280070
Log: Wrap node addition in STA mode into wpi_add_sta_node(). PR: kern/197143 Submitted by: Andriy Voskoboinyk <s3er...@gmail.com> Modified: head/sys/dev/wpi/if_wpi.c Modified: head/sys/dev/wpi/if_wpi.c ============================================================================== --- head/sys/dev/wpi/if_wpi.c Sun Mar 15 20:34:26 2015 (r280069) +++ head/sys/dev/wpi/if_wpi.c Sun Mar 15 20:35:25 2015 (r280070) @@ -1527,6 +1527,14 @@ wpi_add_node_entry_adhoc(struct wpi_soft } static __inline int +wpi_add_node_entry_sta(struct wpi_softc *sc) +{ + sc->nodesmsk |= 1 << WPI_ID_BSS; + + return WPI_ID_BSS; +} + +static __inline int wpi_check_node_entry(struct wpi_softc *sc, uint8_t id) { if (id == WPI_ID_UNDEFINED) @@ -1570,7 +1578,7 @@ wpi_node_free(struct ieee80211_node *ni) struct wpi_softc *sc = ic->ic_ifp->if_softc; struct wpi_node *wn = WPI_NODE(ni); - if (wn->id >= WPI_ID_IBSS_MIN && wn->id <= WPI_ID_IBSS_MAX) { + if (wn->id != WPI_ID_UNDEFINED) { WPI_LOCK(sc); if (wpi_check_node_entry(sc, wn->id)) { wpi_del_node_entry(sc, wn->id); @@ -3032,6 +3040,25 @@ wpi_add_broadcast_node(struct wpi_softc } static int +wpi_add_sta_node(struct wpi_softc *sc, struct ieee80211_node *ni) +{ + struct wpi_node *wn = WPI_NODE(ni); + int error; + + DPRINTF(sc, WPI_DEBUG_TRACE, TRACE_STR_DOING, __func__); + + wn->id = wpi_add_node_entry_sta(sc); + + if ((error = wpi_add_node(sc, ni)) != 0) { + wpi_del_node_entry(sc, wn->id); + wn->id = WPI_ID_UNDEFINED; + return error; + } + + return 0; +} + +static int wpi_add_ibss_node(struct wpi_softc *sc, struct ieee80211_node *ni) { struct wpi_node *wn = WPI_NODE(ni); @@ -4011,8 +4038,8 @@ wpi_run(struct wpi_softc *sc, struct iee if (vap->iv_opmode == IEEE80211_M_STA) { /* Add BSS node. */ - ((struct wpi_node *)ni)->id = WPI_ID_BSS; - if ((error = wpi_add_node(sc, ni)) != 0) { + error = wpi_add_sta_node(sc, ni); + if (error != 0) { device_printf(sc->sc_dev, "%s: could not add BSS node, error %d\n", __func__, error); _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"