• Ben Hutchings's avatar
    net: Fix test for VLAN TX checksum offload capability · 6de329e2
    Ben Hutchings authored
    Selected device feature bits can be propagated to VLAN devices, so we
    can make use of TX checksum offload and TSO on VLAN-tagged packets.
    However, if the physical device does not do VLAN tag insertion or
    generic checksum offload then the test for TX checksum offload in
    dev_queue_xmit() will see a protocol of htons(ETH_P_8021Q) and yield
    false.
    
    This splits the checksum offload test into two functions:
    
    - can_checksum_protocol() tests a given protocol against a feature bitmask
    
    - dev_can_checksum() first tests the skb protocol against the device
      features; if that fails and the protocol is htons(ETH_P_8021Q) then
      it tests the encapsulated protocol against the effective device
      features for VLANs
    Signed-off-by: default avatarBen Hutchings <bhutchings@solarflare.com>
    Acked-by: default avatarPatrick McHardy <kaber@trash.net>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    6de329e2
dev.c 112 KB