Commit 53f6b708f89668cfb5eb9e49384b64b237bae0b2
Committed by
David S. Miller
1 parent
5fbea33740
Exists in
ti-lsk-linux-4.1.y
and in
10 other branches
vlan: Add ability to always enable TSO/UFO
Since the real device can segment packets by software, a vlan device can set TSO/UFO even when the real device doesn't have those features. Unlike GSO, this allows packets to be segmented after Qdisc. Signed-off-by: Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp> Signed-off-by: David S. Miller <davem@davemloft.net>
Showing 1 changed file with 4 additions and 3 deletions Side-by-side Diff
net/8021q/vlan_dev.c
... | ... | @@ -579,11 +579,12 @@ |
579 | 579 | (1<<__LINK_STATE_PRESENT); |
580 | 580 | |
581 | 581 | dev->hw_features = NETIF_F_ALL_CSUM | NETIF_F_SG | |
582 | - NETIF_F_FRAGLIST | NETIF_F_ALL_TSO | | |
582 | + NETIF_F_FRAGLIST | NETIF_F_GSO_SOFTWARE | | |
583 | 583 | NETIF_F_HIGHDMA | NETIF_F_SCTP_CSUM | |
584 | 584 | NETIF_F_ALL_FCOE; |
585 | 585 | |
586 | - dev->features |= real_dev->vlan_features | NETIF_F_LLTX; | |
586 | + dev->features |= real_dev->vlan_features | NETIF_F_LLTX | | |
587 | + NETIF_F_GSO_SOFTWARE; | |
587 | 588 | dev->gso_max_size = real_dev->gso_max_size; |
588 | 589 | if (dev->features & NETIF_F_VLAN_FEATURES) |
589 | 590 | netdev_warn(real_dev, "VLAN features are set incorrectly. Q-in-Q configurations may not work correctly.\n"); |
... | ... | @@ -648,7 +649,7 @@ |
648 | 649 | features |= NETIF_F_RXCSUM; |
649 | 650 | features = netdev_intersect_features(features, real_dev->features); |
650 | 651 | |
651 | - features |= old_features & NETIF_F_SOFT_FEATURES; | |
652 | + features |= old_features & (NETIF_F_SOFT_FEATURES | NETIF_F_GSO_SOFTWARE); | |
652 | 653 | features |= NETIF_F_LLTX; |
653 | 654 | |
654 | 655 | return features; |