On 10/08/2010 11:03 AM, Bob Copeland wrote:
On Fri, Oct 8, 2010 at 12:43 PM,<greearb@xxxxxxxxxxxxxxx> wrote:
@@ -558,6 +577,7 @@ void ath5k_update_bssid_mask(struct ath5k_softc *sc, struct ieee80211_vif *vif)
memset(&iter_data.mask, 0xff, ETH_ALEN);
iter_data.found_active = false;
iter_data.need_set_hw_addr = true;
+ iter_data.opmode = NL80211_IFTYPE_UNSPECIFIED;
if (vif)
ath_vif_iter(&iter_data, vif->addr, vif);
@@ -567,6 +587,11 @@ void ath5k_update_bssid_mask(struct ath5k_softc *sc, struct ieee80211_vif *vif)
&iter_data);
memcpy(sc->bssidmask, iter_data.mask, ETH_ALEN);
+ if (update_opmode&& sc->opmode != iter_data.opmode) {
+ sc->opmode = iter_data.opmode;
+ ath_do_set_opmode(sc);
+ }
+
Should we really couple updating bssid mask and configuring
the opmode? Generally, I dislike adding boolean flags to
functions because it's hard to figure out from the callsite
what is happening (you have to go back to the prototype), and
it usually indicates that the abstraction is a little broken.
Well, we need to do the iteration over all VIFS to figure out what to set this
too. Seems doing one iteration v/s doing two is worth the
extra flag?
Thanks,
Ben
--
Ben Greear <greearb@xxxxxxxxxxxxxxx>
Candela Technologies Inc http://www.candelatech.com
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html