• Francois Romieu's avatar
    r8169: TSO fixes. · 2b7b4318
    Francois Romieu authored
    - 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: default avatarFrancois Romieu <romieu@fr.zoreil.com>
    Cc: Realtek <nic_swsd@realtek.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    2b7b4318
r8169.c 130 KB