diff options
author | Ajit Khaparde <ajitk@serverengines.com> | 2010-06-14 00:56:07 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-06-16 21:13:28 -0400 |
commit | 49e4b8476f89956ec64b8b9fb7074cb4309a1169 (patch) | |
tree | d77b26bcaff329a416b528d585a27a4158ce7090 /drivers/net/benet | |
parent | d29c0c5c332131f1151cf33995e2f01299b9234f (diff) |
be2net: enable ipv6 tso support
Add ipv6 support to the be2net driver.
Signed-off-by: Ajit Khaparde <ajitk@serverengines.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/benet')
-rw-r--r-- | drivers/net/benet/be_hw.h | 2 | ||||
-rw-r--r-- | drivers/net/benet/be_main.c | 6 |
2 files changed, 5 insertions, 3 deletions
diff --git a/drivers/net/benet/be_hw.h b/drivers/net/benet/be_hw.h index 063026de4957..06839676e3c4 100644 --- a/drivers/net/benet/be_hw.h +++ b/drivers/net/benet/be_hw.h | |||
@@ -192,7 +192,7 @@ struct amap_eth_hdr_wrb { | |||
192 | u8 event; | 192 | u8 event; |
193 | u8 crc; | 193 | u8 crc; |
194 | u8 forward; | 194 | u8 forward; |
195 | u8 ipsec; | 195 | u8 lso6; |
196 | u8 mgmt; | 196 | u8 mgmt; |
197 | u8 ipcs; | 197 | u8 ipcs; |
198 | u8 udpcs; | 198 | u8 udpcs; |
diff --git a/drivers/net/benet/be_main.c b/drivers/net/benet/be_main.c index 322577469852..01eb447f98b6 100644 --- a/drivers/net/benet/be_main.c +++ b/drivers/net/benet/be_main.c | |||
@@ -373,10 +373,12 @@ static void wrb_fill_hdr(struct be_eth_hdr_wrb *hdr, struct sk_buff *skb, | |||
373 | 373 | ||
374 | AMAP_SET_BITS(struct amap_eth_hdr_wrb, crc, hdr, 1); | 374 | AMAP_SET_BITS(struct amap_eth_hdr_wrb, crc, hdr, 1); |
375 | 375 | ||
376 | if (skb_shinfo(skb)->gso_segs > 1 && skb_shinfo(skb)->gso_size) { | 376 | if (skb_is_gso(skb)) { |
377 | AMAP_SET_BITS(struct amap_eth_hdr_wrb, lso, hdr, 1); | 377 | AMAP_SET_BITS(struct amap_eth_hdr_wrb, lso, hdr, 1); |
378 | AMAP_SET_BITS(struct amap_eth_hdr_wrb, lso_mss, | 378 | AMAP_SET_BITS(struct amap_eth_hdr_wrb, lso_mss, |
379 | hdr, skb_shinfo(skb)->gso_size); | 379 | hdr, skb_shinfo(skb)->gso_size); |
380 | if (skb_is_gso_v6(skb)) | ||
381 | AMAP_SET_BITS(struct amap_eth_hdr_wrb, lso6, hdr, 1); | ||
380 | } else if (skb->ip_summed == CHECKSUM_PARTIAL) { | 382 | } else if (skb->ip_summed == CHECKSUM_PARTIAL) { |
381 | if (is_tcp_pkt(skb)) | 383 | if (is_tcp_pkt(skb)) |
382 | AMAP_SET_BITS(struct amap_eth_hdr_wrb, tcpcs, hdr, 1); | 384 | AMAP_SET_BITS(struct amap_eth_hdr_wrb, tcpcs, hdr, 1); |
@@ -2186,7 +2188,7 @@ static void be_netdev_init(struct net_device *netdev) | |||
2186 | 2188 | ||
2187 | netdev->features |= NETIF_F_SG | NETIF_F_HW_VLAN_RX | NETIF_F_TSO | | 2189 | netdev->features |= NETIF_F_SG | NETIF_F_HW_VLAN_RX | NETIF_F_TSO | |
2188 | NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_FILTER | NETIF_F_HW_CSUM | | 2190 | NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_FILTER | NETIF_F_HW_CSUM | |
2189 | NETIF_F_GRO; | 2191 | NETIF_F_GRO | NETIF_F_TSO6; |
2190 | 2192 | ||
2191 | netdev->vlan_features |= NETIF_F_SG | NETIF_F_TSO | NETIF_F_HW_CSUM; | 2193 | netdev->vlan_features |= NETIF_F_SG | NETIF_F_TSO | NETIF_F_HW_CSUM; |
2192 | 2194 | ||