Unverified Commit 5e730aa5 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!761 net: stmmac: fix potential double free of dma descriptor resources

Merge Pull Request from: @Hongchen_Zhang 
 
a double free problem in stmmac driver was triggered when doing mugen test,
After apply this patch the double free problem disappear. 
 
Link:https://gitee.com/openeuler/kernel/pulls/761

 

Reviewed-by: default avatarJialin Zhang <zhangjialin11@huawei.com>
Reviewed-by: default avatarGuo Dongtai <guodongtai@kylinos.cn>
Reviewed-by: default avatarYue Haibing <yuehaibing@huawei.com>
Signed-off-by: default avatarJialin Zhang <zhangjialin11@huawei.com>
parents ed3dd346 47021bed
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -1635,10 +1635,15 @@ static void free_dma_rx_desc_resources(struct stmmac_priv *priv)
			dma_free_coherent(priv->device, priv->dma_rx_size *
					  sizeof(struct dma_extended_desc),
					  rx_q->dma_erx, rx_q->dma_rx_phy);
		rx_q->dma_rx = NULL;
		rx_q->dma_erx = NULL;

		kfree(rx_q->buf_pool);
		rx_q->buf_pool = NULL;

		if (rx_q->page_pool)
			page_pool_destroy(rx_q->page_pool);
		rx_q->page_pool = NULL;
	}
}

@@ -1675,8 +1680,15 @@ static void free_dma_tx_desc_resources(struct stmmac_priv *priv)

		dma_free_coherent(priv->device, size, addr, tx_q->dma_tx_phy);

		tx_q->dma_etx = NULL;
		tx_q->dma_entx = NULL;
		tx_q->dma_tx = NULL;

		kfree(tx_q->tx_skbuff_dma);
		tx_q->tx_skbuff_dma = NULL;

		kfree(tx_q->tx_skbuff);
		tx_q->tx_skbuff = NULL;
	}
}