wifi: mt76: Assume __mt76_connac_mcu_alloc_sta_req runs in atomic context
authorLorenzo Bianconi <lorenzo@kernel.org>
Thu, 5 Jun 2025 11:14:16 +0000 (13:14 +0200)
committerFelix Fietkau <nbd@nbd.name>
Mon, 7 Jul 2025 15:42:19 +0000 (17:42 +0200)
Rely on GFP_ATOMIC flag in __mt76_connac_mcu_alloc_sta_req since it can
run in atomic context. This is a preliminary patch to fix a 'sleep while
atomic' issue in mt7996_mac_sta_rc_work().

Fixes: 0762bdd30279 ("wifi: mt76: mt7996: rework mt7996_mac_sta_rc_work to support MLO")
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Link: https://patch.msgid.link/20250605-mt7996-sleep-while-atomic-v1-1-d46d15f9203c@kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c

index cb13d0a768789af956f810e5af19507e436a449a..fa08e952dffa9d6e623a1f6819f136be3a5a0c76 100644 (file)
@@ -287,7 +287,7 @@ __mt76_connac_mcu_alloc_sta_req(struct mt76_dev *dev, struct mt76_vif_link *mvif
 
        mt76_connac_mcu_get_wlan_idx(dev, wcid, &hdr.wlan_idx_lo,
                                     &hdr.wlan_idx_hi);
-       skb = mt76_mcu_msg_alloc(dev, NULL, len);
+       skb = __mt76_mcu_msg_alloc(dev, NULL, len, len, GFP_ATOMIC);
        if (!skb)
                return ERR_PTR(-ENOMEM);