diff options
author | Aaro Koskinen | 2019-03-27 21:35:35 +0100 |
---|---|---|
committer | David S. Miller | 2019-03-31 23:00:58 +0200 |
commit | 583e6361414903c5206258a30e5bd88cb03c0254 (patch) | |
tree | 5ec09545ea7f23e777609b40c7e3593408deb0c5 /drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | |
parent | r8169: disable default rx interrupt coalescing on RTL8168 (diff) | |
download | kernel-qcow2-linux-583e6361414903c5206258a30e5bd88cb03c0254.tar.gz kernel-qcow2-linux-583e6361414903c5206258a30e5bd88cb03c0254.tar.xz kernel-qcow2-linux-583e6361414903c5206258a30e5bd88cb03c0254.zip |
net: stmmac: use correct DMA buffer size in the RX descriptor
We always program the maximum DMA buffer size into the receive descriptor,
although the allocated size may be less. E.g. with the default MTU size
we allocate only 1536 bytes. If somebody sends us a bigger frame, then
memory may get corrupted.
Fix by using exact buffer sizes.
Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/stmicro/stmmac/stmmac_main.c')
-rw-r--r-- | drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index 6a2e1031a62a..4e496cf655f2 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -1136,11 +1136,13 @@ static void stmmac_clear_rx_descriptors(struct stmmac_priv *priv, u32 queue) if (priv->extend_desc) stmmac_init_rx_desc(priv, &rx_q->dma_erx[i].basic, priv->use_riwt, priv->mode, - (i == DMA_RX_SIZE - 1)); + (i == DMA_RX_SIZE - 1), + priv->dma_buf_sz); else stmmac_init_rx_desc(priv, &rx_q->dma_rx[i], priv->use_riwt, priv->mode, - (i == DMA_RX_SIZE - 1)); + (i == DMA_RX_SIZE - 1), + priv->dma_buf_sz); } /** |