net: stmmac: RX Descriptors need to be clean before setting buffers
RX Descriptors are being cleaned after setting the buffers which may
lead to buffer addresses being wiped out.
Fix this by clearing earlier the RX Descriptors.
Fixes: 2af6106ae9
("net: stmmac: Introducing support for Page Pool")
Signed-off-by: Jose Abreu <joabreu@synopsys.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
f4e5f775db
Коммит
cbcf0999ae
|
@ -1295,6 +1295,8 @@ static int init_dma_rx_desc_rings(struct net_device *dev, gfp_t flags)
|
|||
"(%s) dma_rx_phy=0x%08x\n", __func__,
|
||||
(u32)rx_q->dma_rx_phy);
|
||||
|
||||
stmmac_clear_rx_descriptors(priv, queue);
|
||||
|
||||
for (i = 0; i < DMA_RX_SIZE; i++) {
|
||||
struct dma_desc *p;
|
||||
|
||||
|
@ -1312,8 +1314,6 @@ static int init_dma_rx_desc_rings(struct net_device *dev, gfp_t flags)
|
|||
rx_q->cur_rx = 0;
|
||||
rx_q->dirty_rx = (unsigned int)(i - DMA_RX_SIZE);
|
||||
|
||||
stmmac_clear_rx_descriptors(priv, queue);
|
||||
|
||||
/* Setup the chained descriptor addresses */
|
||||
if (priv->mode == STMMAC_CHAIN_MODE) {
|
||||
if (priv->extend_desc)
|
||||
|
|
Загрузка…
Ссылка в новой задаче