lkml.org 
[lkml]   [2021]   [Sep]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [PATCH 3/3] ath9k: Fix potential hw interrupt resume during reset
Date

On 2021-09-14 21:25, Linus Lüssing wrote:
> From: Linus Lüssing <ll@simonwunderlich.de>
>
> There is a small risk of the ath9k hw interrupts being reenabled in the
> following way:
>
> 1) ath_reset_internal()
> ...
> -> disable_irq()
> ...
> <- returns
>
> 2) ath9k_tasklet()
> ...
> -> ath9k_hw_resume_interrupts()
> ...
>
> 1) ath_reset_internal() continued:
> -> tasklet_disable(&sc->intr_tq); (= ath9k_tasklet() off)
>
> By first disabling the ath9k interrupt there is a small window
> afterwards which allows ath9k hw interrupts being reenabled through
> the ath9k_tasklet() before we disable this tasklet in
> ath_reset_internal(). Leading to having the ath9k hw interrupts enabled
> during the reset, which we should avoid.
I don't see a way in which interrupts can be re-enabled through the
tasklet. disable_irq disables the entire PCI IRQ (not through ath9k hw
registers), and they will only be re-enabled by the corresponding
enable_irq call.

- Felix

\
 
 \ /
  Last update: 2021-09-15 11:50    [W:0.150 / U:0.056 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site