lkml.org 
[lkml]   [2020]   [Oct]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.9 319/757] mt76: mt7615: fix a possible NULL pointer dereference in mt7615_pm_wake_work
    Date
    From: Lorenzo Bianconi <lorenzo@kernel.org>

    [ Upstream commit a081de174d11b12db9a94eb748041c2732f14c10 ]

    Initialize wcid to global_wcid if msta is NULL in mt7615_pm_wake_work
    routine since wcid will be dereferenced running mt76_tx()

    Fixes: 2b8cdfb28d340 ("mt76: mt7615: wake device before pushing frames in mt7615_tx")
    Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
    Signed-off-by: Felix Fietkau <nbd@nbd.name>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/wireless/mediatek/mt76/mt7615/mac.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    diff --git a/drivers/net/wireless/mediatek/mt76/mt7615/mac.c b/drivers/net/wireless/mediatek/mt76/mt7615/mac.c
    index 3dd8dd28690ed..2be127018df6a 100644
    --- a/drivers/net/wireless/mediatek/mt76/mt7615/mac.c
    +++ b/drivers/net/wireless/mediatek/mt76/mt7615/mac.c
    @@ -1853,12 +1853,13 @@ void mt7615_pm_wake_work(struct work_struct *work)
    spin_lock_bh(&dev->pm.txq_lock);
    for (i = 0; i < IEEE80211_NUM_ACS; i++) {
    struct mt7615_sta *msta = dev->pm.tx_q[i].msta;
    - struct mt76_wcid *wcid = msta ? &msta->wcid : NULL;
    struct ieee80211_sta *sta = NULL;
    + struct mt76_wcid *wcid;

    if (!dev->pm.tx_q[i].skb)
    continue;

    + wcid = msta ? &msta->wcid : &dev->mt76.global_wcid;
    if (msta && wcid->sta)
    sta = container_of((void *)msta, struct ieee80211_sta,
    drv_priv);
    --
    2.25.1


    \
     
     \ /
      Last update: 2020-10-27 17:11    [W:4.661 / U:0.124 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site