r8169: fix unsigned int wraparound with TSO
authorJulien Ducourthial <jducourt@free.fr>
Tue, 8 May 2012 22:00:06 +0000 (00:00 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 8 May 2012 23:34:10 +0000 (19:34 -0400)
commit477206a018f902895bfcd069dd820bfe94c187b1
tree00327b9b57c77652b6629c9d540c497db886338f
parentc5baa80ac879a3b38314f434c0a7255a2c2e4c86
r8169: fix unsigned int wraparound with TSO

The r8169 may get stuck or show bad behaviour after activating TSO :
the net_device is not stopped when it has no more TX descriptors.
This problem comes from TX_BUFS_AVAIL which may reach -1 when all
transmit descriptors are in use. The patch simply tries to keep positive
values.

Tested with 8111d(onboard) on a D510MO, and with 8111e(onboard) on a
Zotac 890GXITX.

Signed-off-by: Julien Ducourthial <jducourt@free.fr>
Acked-by: Francois Romieu <romieu@fr.zoreil.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/realtek/r8169.c