Skip to content
Commit 2c2a9cbd authored by Karl Beldan's avatar Karl Beldan Committed by David S. Miller
Browse files

net: mv643xx_eth: reclaim TX skbs only when released by the HW



ATM, txq_reclaim will dequeue and free an skb for each tx desc released
by the hw that has TX_LAST_DESC set. However, in case of TSO, each
hw desc embedding the last part of a segment has TX_LAST_DESC set,
losing the one-to-one 'last skb frag'/'TX_LAST_DESC set' correspondance,
which causes data corruption.

Fix this by checking TX_ENABLE_INTERRUPT instead of TX_LAST_DESC, and
warn when trying to dequeue from an empty txq (which can be symptomatic
of releasing skbs prematurely).

Fixes: 3ae8f4e0 ('net: mv643xx_eth: Implement software TSO')
Reported-by: default avatarSlawomir Gajzner <slawomir.gajzner@gmail.com>
Reported-by: default avatarJulien D'Ascenzio <jdascenzio@yahoo.fr>
Signed-off-by: default avatarKarl Beldan <karl.beldan@rivierawaves.com>
Cc: Ian Campbell <ijc@hellion.org.uk>
Cc: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 66f1c448
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment