aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/benet
diff options
context:
space:
mode:
authorAjit Khaparde <ajitk@serverengines.com>2010-06-14 00:56:07 -0400
committerDavid S. Miller <davem@davemloft.net>2010-06-16 21:13:28 -0400
commit49e4b8476f89956ec64b8b9fb7074cb4309a1169 (patch)
treed77b26bcaff329a416b528d585a27a4158ce7090 /drivers/net/benet
parentd29c0c5c332131f1151cf33995e2f01299b9234f (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.h2
-rw-r--r--drivers/net/benet/be_main.c6
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