mt76 testmode fixes
Subsystems (3)
Lorenzo Bianconi
maintainercover mt76 testmode fixes
Fix an undefined behaviour and a memory leak in mt76 testmode code
Lorenzo Bianconi (3):
mt76: testmode: fix memory leak in mt76_testmode_alloc_skb
mt76: testmode: remove unnecessary function calls in
mt76_testmode_free_skb
mt76: testmode: remove undefined behaviour in mt76_testmode_alloc_skb
drivers/net/wireless/mediatek/mt76/testmode.c | 24 ++++++------------- 1 file changed, 7 insertions(+), 17 deletions(-)
Signature · 1 line
2.31.1
Lorenzo Bianconi
maintainerPATCH 1/3 mt76: testmode: fix memory leak in mt76_testmode_alloc_skb
Free all pending frames in case of failure in mt76_testmode_alloc_skb routine
--- drivers/net/wireless/mediatek/mt76/testmode.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
drivers/net/wireless/mediatek/mt76/testmode.c +4 -1
@@ -158,8 +158,11 @@ int mt76_testmode_alloc_skb(struct mt76_phy *phy, u32 len) frag_len =MT_TXP_MAX_LEN ; frag =alloc_skb (frag_len,GFP_KERNEL ); -if (!frag) +if (!frag) { +mt76_testmode_free_skb (phy); +dev_kfree_skb (head);return -ENOMEM ; + }__skb_put_zero (frag, frag_len); head->len += frag->len;
Signature · 1 line
2.31.1
Lorenzo Bianconi
maintainerPATCH 2/3 mt76: testmode: remove unnecessary function calls in mt76_testmode_free_skb
In reply to Lorenzo BianconiGet rid of unnecessary function calls in mt76_testmode_free_skb routine since they are already managed by dev_kfree_skb
--- drivers/net/wireless/mediatek/mt76/testmode.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-)
drivers/net/wireless/mediatek/mt76/testmode.c +1 -10
@@ -88,17 +88,8 @@ static void mt76_testmode_free_skb(struct mt76_phy *phy) {struct mt76_testmode_data *td = &phy->test; -struct sk_buff *skb = td->tx_skb; - -if (!skb) -return ; - -if (skb_has_frag_list (skb)) { -kfree_skb_list (skb_shinfo (skb)->frag_list); -skb_shinfo (skb)->frag_list =NULL ; - } -dev_kfree_skb (skb); +dev_kfree_skb (td->tx_skb); td->tx_skb =NULL ; }
Signature · 1 line
2.31.1
Lorenzo Bianconi
maintainerPATCH 3/3 mt76: testmode: remove undefined behaviour in mt76_testmode_alloc_skb
In reply to Lorenzo BianconiGet rif of an undefined behaviour in mt76_testmode_alloc_skb routine allocating skb frames
--- drivers/net/wireless/mediatek/mt76/testmode.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-)
drivers/net/wireless/mediatek/mt76/testmode.c +2 -6
@@ -159,12 +159,8 @@ int mt76_testmode_alloc_skb(struct mt76_phy *phy, u32 len) head->len += frag->len; head->data_len += frag->len; -if (*frag_tail) { - (*frag_tail)->next = frag; - frag_tail = &frag; - }else { - *frag_tail = frag; - } + *frag_tail = frag; + frag_tail = &(*frag_tail)->next; }mt76_testmode_free_skb (phy);
Signature · 1 line
2.31.1