Search Linux Wireless

Re: [PATCH 2/2] ath5k: Adjust opmode when interfaces are removed.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/08/2010 11:13 AM, Bob Copeland wrote:
On Fri, Oct 8, 2010 at 2:06 PM, Ben Greear<greearb@xxxxxxxxxxxxxxx>  wrote:
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?

I admit I haven't looked at the context, so I'm not sure how ugly it
is, but you can often do this kind of thing by inverting the loop:

update_vif_data()
{
    for all vifs:
       compute new bssid&  opmode

    update_bssid(new_bssid)
    update_opmode(neW_opmode)
}

and call that instead (even in the single vif case).

I can just always set the opmode if you prefer that.  Maybe
change the name of that method.

I'll work on a patch.

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


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux