diff options
| author | Toke Høiland-Jørgensen <toke@redhat.com> | 2026-09-08 19:05:18 +0200 |
|---|---|---|
| committer | Jeff Johnson <jeff.johnson@oss.qualcomm.com> | 2026-09-21 10:57:59 -0700 |
| commit | 1af8dc9ca726cf53767f9c0661171396f95c146a (patch) | |
| tree | 365b7c30ef412d665c6835e830ec85396a9fe16e /tools/perf/scripts/python/stackcollapse.py | |
| parent | 7e0ad05ebc72fffba2bdf2400400902d94ed7272 (diff) | |
| download | linux-1af8dc9ca726cf53767f9c0661171396f95c146a.tar.gz linux-1af8dc9ca726cf53767f9c0661171396f95c146a.zip | |
wifi: ath9k: Clean up device initialisation guards
The ath9k driver has a couple of guards against the RX path running
until device initialisation has completed. However, they are problematic
for several reasons:
- They use smp_wmb() paired with a data_race() annotation, instead of
the idiomatic smp_store_release()/smp_load_acquire() pair.
- The guard in ath9k_wmi_event_tasklet() is weirdly late in the
function.
- There are two of them when there's really no reason the rx init gets
to run before the whole initialisation is complete.
Consolidate the guards on the single ath9k_htc_priv->initialized
variable and use smp_store_release()/smp_load_acquire() to access it.
Move the store into ath9k_init_device() to make sure it's set in all
paths in the driver.
Fixes: 24355fcb0d4c ("wifi: ath9k: delay all of ath9k_wmi_event_tasklet() until init is complete")
Fixes: b0ec7e55fce6 ("ath9k_htc: fix NULL pointer dereference at ath9k_htc_rxep()")
Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
Link: https://patch.msgid.link/20260908170520.112946-1-toke@redhat.com
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
Diffstat (limited to 'tools/perf/scripts/python/stackcollapse.py')
0 files changed, 0 insertions, 0 deletions
