diff options
Diffstat (limited to 'net/core/dev.c')
-rw-r--r-- | net/core/dev.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index cd2437495428..55ff66fabce4 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -5041,10 +5041,13 @@ unsigned long netdev_fix_features(unsigned long features, const char *name) | |||
5041 | } | 5041 | } |
5042 | 5042 | ||
5043 | if (features & NETIF_F_UFO) { | 5043 | if (features & NETIF_F_UFO) { |
5044 | if (!(features & NETIF_F_GEN_CSUM)) { | 5044 | /* maybe split UFO into V4 and V6? */ |
5045 | if (!((features & NETIF_F_GEN_CSUM) || | ||
5046 | (features & (NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM)) | ||
5047 | == (NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM))) { | ||
5045 | if (name) | 5048 | if (name) |
5046 | printk(KERN_ERR "%s: Dropping NETIF_F_UFO " | 5049 | printk(KERN_ERR "%s: Dropping NETIF_F_UFO " |
5047 | "since no NETIF_F_HW_CSUM feature.\n", | 5050 | "since no checksum offload features.\n", |
5048 | name); | 5051 | name); |
5049 | features &= ~NETIF_F_UFO; | 5052 | features &= ~NETIF_F_UFO; |
5050 | } | 5053 | } |