mv643xx_eth: fix recycle check bound
When mv643xx_eth allocates skbuffs, it adds 'dma_get_cache_alignment() - 1' to the length it needs, so that it can align the skb's ->data pointer to a cache boundary. When checking whether a transmitted skbuff can be reused as a receive buffer, these bytes needs to be included into the minimum bound for the recycle check. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
bcb3336ce4
Коммит
11b4aa03b2
|
@ -899,7 +899,8 @@ static int txq_reclaim(struct tx_queue *txq, int budget, int force)
|
|||
if (skb != NULL) {
|
||||
if (skb_queue_len(&mp->rx_recycle) <
|
||||
mp->default_rx_ring_size &&
|
||||
skb_recycle_check(skb, mp->skb_size))
|
||||
skb_recycle_check(skb, mp->skb_size +
|
||||
dma_get_cache_alignment() - 1))
|
||||
__skb_queue_head(&mp->rx_recycle, skb);
|
||||
else
|
||||
dev_kfree_skb(skb);
|
||||
|
|
Загрузка…
Ссылка в новой задаче