r8169: TSO fixes.
authorFrancois Romieu <romieu@fr.zoreil.com>
Tue, 19 Apr 2011 05:53:24 +0000 (22:53 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 19 Apr 2011 05:53:24 +0000 (22:53 -0700)
commit2b7b431858c284b62c18baaf2cea571be2797d5a
tree8aec96a197b6e9bf501752884c1f55c97e0c385b
parent47c2cdf5513e86e43c799da8d5406cc9a2bf3626
r8169: TSO fixes.

- the MSS value is actually contained in a 11 bits wide (0x7ff) field.
  The extra bit in the former MSSMask did encompass the TSO command
  bit ("LargeSend") as well (0xfff). Oops.

- the Tx descriptor layout is not the same through the whole chipset
  family. The 8169 documentation, the 8168c documentation and Realtek's
  drivers (8.020.00, 1.019.00, 6.014.00) highlight two layouts:
  1. 8169, 8168 up to 8168b (included) and 8101
  2. {8102e, 8168c} and beyond

- notwithstanding the "first descriptor" and "last descriptor" bits, the
  same Tx descriptor content is enforced when a packet consists of several
  descriptors. The chipsets are documented to require it.

Credits go to David Dillow <dave@thedillows.org> for the original patch.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Cc: Realtek <nic_swsd@realtek.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/r8169.c