From: Ben Greear <greearb@candelatech.com>
To: Bruno Randolf <br1@einfach.org>
Cc: linux-wireless@vger.kernel.org
Subject: Re: [PATCH v2] ath5k: Adjust opmode when interfaces are removed.
Date: Mon, 11 Oct 2010 19:10:43 -0700 [thread overview]
Message-ID: <4CB3C3A3.5040309@candelatech.com> (raw)
In-Reply-To: <201010121044.39093.br1@einfach.org>
On 10/11/2010 06:44 PM, Bruno Randolf wrote:
> On Sat October 9 2010 04:01:15 greearb@candelatech.com wrote:
>> +
>> + /* Calculate combined mode - when APs are active, operate in AP mode.
>> + * Otherwise use the mode of the new interface. This can currently
>> + * only deal with combinations of APs and STAs. Only one ad-hoc
>> + * interfaces is allowed above.
>
> the comment reference to "above" does not make sense here any more.
This patch is already in..but I can send a followup cleanup patch.
>
>> + */
>> + if (avf->opmode == NL80211_IFTYPE_AP)
>> + iter_data->opmode = NL80211_IFTYPE_AP;
>> + else
>> + if (iter_data->opmode == NL80211_IFTYPE_UNSPECIFIED)
>> + iter_data->opmode = avf->opmode;
>> }
>>
>> -void ath5k_update_bssid_mask(struct ath5k_softc *sc, struct ieee80211_vif
>> *vif) +static void ath_do_set_opmode(struct ath5k_softc *sc)
>> +{
>> + struct ath5k_hw *ah = sc->ah;
>> + ath5k_hw_set_opmode(ah, sc->opmode);
>> + ATH5K_DBG(sc, ATH5K_DEBUG_MODE, "mode setup opmode %d (%s)\n",
>> + sc->opmode,
>> + ath_opmode_to_string(sc->opmode) ?
>> + ath_opmode_to_string(sc->opmode) : "UKNOWN");
>> +}
>
> what's the point of this function? just to add the debug print?
Yes. At one point, I had it being called from several places..but now it's
called from only one place currently, I think. I could make it explicitly
inline code if someone cared.
>> - /* Set combined mode - when APs are configured, operate in AP mode.
>> - * Otherwise use the mode of the new interface. This can currently
>> - * only deal with combinations of APs and STAs. Only one ad-hoc
>> - * interfaces is allowed above.
>> - */
>> - if (sc->num_ap_vifs)
>> - sc->opmode = NL80211_IFTYPE_AP;
>> - else
>> - sc->opmode = vif->type;
>> -
>> - ath5k_hw_set_opmode(ah, sc->opmode);
>> -
>
> i think it makes sense to set the opmode here. and also do the same in
> ath5k_remove_interface. that way we figure out the opmode when interfaces are
> added/removed.
It calls ath5k_mode_setup(sc, vif), which sets rx filter, updates bssid mask,
and sets the opmode.
>> @@ -2905,7 +2919,7 @@ ath5k_remove_interface(struct ieee80211_hw *hw,
>> else if (avf->opmode == NL80211_IFTYPE_ADHOC)
>> sc->num_adhoc_vifs--;
>>
>> - ath5k_update_bssid_mask(sc, NULL);
>> + ath5k_update_bssid_mask_and_opmode(sc, NULL);
>> mutex_unlock(&sc->lock);
And that recalculates opmode and bssid mask on removal.
Or maybe I'm mis-understanding your suggestion?
Thanks,
Ben
--
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc http://www.candelatech.com
next prev parent reply other threads:[~2010-10-12 2:10 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-08 19:01 [PATCH v2] ath5k: Adjust opmode when interfaces are removed greearb
2010-10-12 1:44 ` Bruno Randolf
2010-10-12 2:10 ` Ben Greear [this message]
2010-10-12 2:48 ` Bruno Randolf
2010-11-10 19:44 ` Ben Greear
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4CB3C3A3.5040309@candelatech.com \
--to=greearb@candelatech.com \
--cc=br1@einfach.org \
--cc=linux-wireless@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.