]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
wifi: mt76: mt7996: fix potential memory leakage when reading chip temperature
authorHoward Hsu <howard-yh.hsu@mediatek.com>
Wed, 20 Mar 2024 11:09:14 +0000 (19:09 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 30 May 2024 07:49:20 +0000 (09:49 +0200)
[ Upstream commit 474b9412f33be87076b40a49756662594598a85e ]

Without this commit, reading chip temperature will cause memory leakage.

Fixes: 6879b2e94172 ("wifi: mt76: mt7996: add thermal sensor device support")
Reported-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Howard Hsu <howard-yh.hsu@mediatek.com>
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c

index 25ea81ecdab9b2129ee091453e7e4dd9ca8a15dd..10d13fa45c5a1ab18dcd80928c37b784a1a476f8 100644 (file)
@@ -3733,6 +3733,7 @@ int mt7996_mcu_get_temperature(struct mt7996_phy *phy)
        } __packed * res;
        struct sk_buff *skb;
        int ret;
+       u32 temp;
 
        ret = mt76_mcu_send_and_get_msg(&phy->dev->mt76, MCU_WM_UNI_CMD(THERMAL),
                                        &req, sizeof(req), true, &skb);
@@ -3740,8 +3741,10 @@ int mt7996_mcu_get_temperature(struct mt7996_phy *phy)
                return ret;
 
        res = (void *)skb->data;
+       temp = le32_to_cpu(res->temperature);
+       dev_kfree_skb(skb);
 
-       return le32_to_cpu(res->temperature);
+       return temp;
 }
 
 int mt7996_mcu_set_thermal_throttling(struct mt7996_phy *phy, u8 state)