openwrt/package/kernel/mac80211/patches/subsys/321-wifi-mac80211-do-not-pass-a-stopped-vif-to-the-drive.patch
Felix Fietkau a9540a4e33 mac80211: do not pass a stopped vif to the driver on get_txpower
Fixes potential crashes in various drivers when checking the status of
interfaces that are down

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-10-02 12:39:34 +02:00

25 lines
827 B
Diff

From: Felix Fietkau <nbd@nbd.name>
Date: Wed, 2 Oct 2024 11:45:35 +0200
Subject: [PATCH] wifi: mac80211: do not pass a stopped vif to the driver in
.get_txpower
Avoid potentially crashing in the driver because of uninitialized private data
Fixes: 5b3dc42b1b0d ("mac80211: add support for driver tx power reporting")
Cc: stable@vger.kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -3134,7 +3134,8 @@ static int ieee80211_get_tx_power(struct
struct ieee80211_local *local = wiphy_priv(wiphy);
struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev);
- if (local->ops->get_txpower)
+ if (local->ops->get_txpower &&
+ (sdata->flags & IEEE80211_SDATA_IN_DRIVER))
return drv_get_txpower(local, sdata, dbm);
if (local->emulate_chanctx)