[PATCH] wifi: mt76: Fix missing barrier after initialization check in ath9k_wmi_event_tasklet()
From: Thomas Fourier
Date: Wed Jul 01 2026 - 10:10:37 EST
The write memory barrier in ath9k_htc_probe_device() before writing to
priv->initialized, so it seems like one is also needed after reading it,
but seems like there is none after reading priv->initialized.
Add a read barrier after reading the priv->initialized flag to prevent
reordering of reads.
Fixes: 8b3046abc99e ("ath9k_htc: fix NULL pointer dereference at ath9k_htc_tx_get_packet()")
Signed-off-by: Thomas Fourier <fourier.thomas@xxxxxxxxx>
---
drivers/net/wireless/ath/ath9k/wmi.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/net/wireless/ath/ath9k/wmi.c b/drivers/net/wireless/ath/ath9k/wmi.c
index 284e8c13b043..1e28599a6146 100644
--- a/drivers/net/wireless/ath/ath9k/wmi.c
+++ b/drivers/net/wireless/ath/ath9k/wmi.c
@@ -160,6 +160,11 @@ void ath9k_wmi_event_tasklet(struct tasklet_struct *t)
kfree_skb(skb);
continue;
}
+ /*
+ * Make sure ath9k_htc_probe_device() initialization is
+ * committed to memory before processing skb.
+ */
+ smp_rmb();
hdr = (struct wmi_cmd_hdr *) skb->data;
cmd_id = be16_to_cpu(hdr->command_id);
--
2.43.0