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:
parent
bcb3336ce4
commit
11b4aa03b2
|
@ -899,7 +899,8 @@ static int txq_reclaim(struct tx_queue *txq, int budget, int force)
|
||||||
if (skb != NULL) {
|
if (skb != NULL) {
|
||||||
if (skb_queue_len(&mp->rx_recycle) <
|
if (skb_queue_len(&mp->rx_recycle) <
|
||||||
mp->default_rx_ring_size &&
|
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);
|
__skb_queue_head(&mp->rx_recycle, skb);
|
||||||
else
|
else
|
||||||
dev_kfree_skb(skb);
|
dev_kfree_skb(skb);
|
||||||
|
|
Loading…
Reference in a new issue