wifi: mt76: mt792x: fix negative errno truncation in offload capability
Subsystems (3)
PATCH 1/1 wifi: mt76: mt792x: fix negative errno truncation in offload capability
From: Yi Cong <[email protected]>
Returning a negative errno as u8 turned -ENOENT into 0xfe, wrongly enabling CNM and NAN caps. Return int and default to no caps on error.
Fixes e8a264ccd2de0 ("wifi: mt76: mt7921: move init shared code in mt792x-lib module")
Signed-off-by Yi Cong <[email protected]>
--- drivers/net/wireless/mediatek/mt76/mt792x_core.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-)
drivers/net/wireless/mediatek/mt76/mt792x_core.c +9 -2
@@ -857,7 +857,7 @@ int mt792x_init_wiphy(struct ieee80211_hw *hw) }EXPORT_SYMBOL_GPL (mt792x_init_wiphy); -static u8 +static int mt792x_get_offload_capability (struct device *dev,const char *fw_wm) {const struct mt76_connac2_fw_trailer *hdr;
@@ -926,13 +926,20 @@ mt792x_get_mac80211_ops(struct device *dev, void *drv_data, u8 *fw_features) { struct ieee80211_ops *ops; +int ret; ops =devm_kmemdup (dev, mac80211_ops,sizeof (struct ieee80211_ops ),GFP_KERNEL );if (!ops)return NULL ; - *fw_features =mt792x_get_offload_capability (dev, drv_data); + ret =mt792x_get_offload_capability (dev, drv_data); +if (ret <0 ) { +dev_warn (dev,"failed to read firmware offload caps: %d\n" , ret); + *fw_features =0 ; + }else { + *fw_features = ret; + }if (mt792x_needs_cnm_runtime (drv_data)) *fw_features |= MT792x_FW_CAP_CNM;
Signature · 1 line
2.25.1