On 12 November 2014 07:26, David Ward <david.w...@ll.mit.edu> wrote:
[...]
> +static void iwlagn_mac_sta_rc_update(struct ieee80211_hw *hw,
> +                                    struct ieee80211_vif *vif,
> +                                    struct ieee80211_sta *sta, u32 changed)
> +{
> +       struct iwl_priv *priv = IWL_MAC80211_GET_DVM(hw);
> +
> +       if (!(changed & IEEE80211_RC_SUPP_RATES_CHANGED))
> +               return;
> +
> +       /* Update rate scaling */
> +       IWL_DEBUG_INFO(priv,
> +                      "Updating rate scaling for station %pM\n",
> +                      sta->addr);
> +       iwl_rs_rate_init(priv, sta, iwl_sta_id(sta));

sta_rc_update() must be atomic. I'm not really familiar with iwl that
much but it seems to me iwl_rs_rate_init() -> iwl_send_lq_cmd(..., 0,
true) can sleep, no?


Michał
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to