Lines 1651-1656
Link Here
|
1651 |
sc->sc_node_free(ni); |
1651 |
sc->sc_node_free(ni); |
1652 |
} |
1652 |
} |
1653 |
|
1653 |
|
|
|
1654 |
static __inline int |
1655 |
wpi_check_bss_filter(struct wpi_softc *sc) |
1656 |
{ |
1657 |
return (sc->rxon.filter & htole32(WPI_FILTER_BSS)) != 0; |
1658 |
} |
1659 |
|
1654 |
/** |
1660 |
/** |
1655 |
* Called by net80211 when ever there is a change to 80211 state machine |
1661 |
* Called by net80211 when ever there is a change to 80211 state machine |
1656 |
*/ |
1662 |
*/ |
Lines 1681-1687
Link Here
|
1681 |
switch (nstate) { |
1687 |
switch (nstate) { |
1682 |
case IEEE80211_S_SCAN: |
1688 |
case IEEE80211_S_SCAN: |
1683 |
WPI_RXON_LOCK(sc); |
1689 |
WPI_RXON_LOCK(sc); |
1684 |
if ((sc->rxon.filter & htole32(WPI_FILTER_BSS)) && |
1690 |
if (wpi_check_bss_filter(sc) != 0 && |
1685 |
vap->iv_opmode != IEEE80211_M_STA) { |
1691 |
vap->iv_opmode != IEEE80211_M_STA) { |
1686 |
sc->rxon.filter &= ~htole32(WPI_FILTER_BSS); |
1692 |
sc->rxon.filter &= ~htole32(WPI_FILTER_BSS); |
1687 |
if ((error = wpi_send_rxon(sc, 0, 1)) != 0) { |
1693 |
if ((error = wpi_send_rxon(sc, 0, 1)) != 0) { |
Lines 1749-1755
Link Here
|
1749 |
{ |
1755 |
{ |
1750 |
struct wpi_softc *sc = arg; |
1756 |
struct wpi_softc *sc = arg; |
1751 |
|
1757 |
|
1752 |
if (!(sc->rxon.filter & htole32(WPI_FILTER_BSS))) |
1758 |
if (wpi_check_bss_filter(sc) == 0) |
1753 |
return; |
1759 |
return; |
1754 |
|
1760 |
|
1755 |
wpi_power_calibration(sc); |
1761 |
wpi_power_calibration(sc); |
Lines 3642-3648
Link Here
|
3642 |
if (async) |
3648 |
if (async) |
3643 |
WPI_RXON_LOCK_ASSERT(sc); |
3649 |
WPI_RXON_LOCK_ASSERT(sc); |
3644 |
|
3650 |
|
3645 |
if (assoc && (sc->rxon.filter & htole32(WPI_FILTER_BSS))) { |
3651 |
if (assoc && wpi_check_bss_filter(sc) != 0) { |
3646 |
struct wpi_assoc rxon_assoc; |
3652 |
struct wpi_assoc rxon_assoc; |
3647 |
|
3653 |
|
3648 |
rxon_assoc.flags = sc->rxon.flags; |
3654 |
rxon_assoc.flags = sc->rxon.flags; |