diff mbox

[5/5] ath10k: flush hif buffers before recovery

Message ID 8738d84pgg.fsf@kamboji.qca.qualcomm.com (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Kalle Valo Aug. 7, 2014, 9:30 a.m. UTC
Michal Kazior <michal.kazior@tieto.com> writes:

> Transport buffers weren't flushed and processed
> before queueing hw recovery request to mac80211.
>
> This could in theory result in an unwanted htt/wmi
> rx events being processed while mac80211 recovers
> the device and possibly interfere or even crash
> the system.
>
> Signed-off-by: Michal Kazior <michal.kazior@tieto.com>

This one had a conflict in ath-next-test, I changed the patch to this:

Comments

Michal Kazior Aug. 7, 2014, 9:39 a.m. UTC | #1
On 7 August 2014 11:30, Kalle Valo <kvalo@qca.qualcomm.com> wrote:
> Michal Kazior <michal.kazior@tieto.com> writes:
>
>> Transport buffers weren't flushed and processed
>> before queueing hw recovery request to mac80211.
>>
>> This could in theory result in an unwanted htt/wmi
>> rx events being processed while mac80211 recovers
>> the device and possibly interfere or even crash
>> the system.
>>
>> Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
>
> This one had a conflict in ath-next-test, I changed the patch to this:
>
> --- a/drivers/net/wireless/ath/ath10k/core.c
> +++ b/drivers/net/wireless/ath/ath10k/core.c
> @@ -666,6 +666,7 @@ static void ath10k_core_restart(struct work_struct *work)
>         case ATH10K_STATE_ON:
>                 ar->state = ATH10K_STATE_RESTARTING;
>                 ath10k_scan_finish(ar);
> +               ath10k_hif_stop(ar);
>                 ieee80211_restart_hw(ar->hw);

Oops. I've accidentally posted an old version of this single patch.
The hif_stop() should be _before_ scan_finish/reset(). I'll wait for
more comments before posting a v2 though.


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

Patch

--- a/drivers/net/wireless/ath/ath10k/core.c
+++ b/drivers/net/wireless/ath/ath10k/core.c
@@ -666,6 +666,7 @@  static void ath10k_core_restart(struct work_struct *work)
        case ATH10K_STATE_ON:
                ar->state = ATH10K_STATE_RESTARTING;
                ath10k_scan_finish(ar);
+               ath10k_hif_stop(ar);
                ieee80211_restart_hw(ar->hw);
                break;
        case ATH10K_STATE_OFF: