aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/spider_net.c
diff options
context:
space:
mode:
authorGlenn Elliott <gelliott@cs.unc.edu>2012-03-04 19:47:13 -0500
committerGlenn Elliott <gelliott@cs.unc.edu>2012-03-04 19:47:13 -0500
commitc71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch)
treeecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /drivers/net/spider_net.c
parentea53c912f8a86a8567697115b6a0d8152beee5c8 (diff)
parent6a00f206debf8a5c8899055726ad127dbeeed098 (diff)
Merge branch 'mpi-master' into wip-k-fmlpwip-k-fmlp
Conflicts: litmus/sched_cedf.c
Diffstat (limited to 'drivers/net/spider_net.c')
-rw-r--r--drivers/net/spider_net.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/drivers/net/spider_net.c b/drivers/net/spider_net.c
index 1636a34d95dd..949f124e1278 100644
--- a/drivers/net/spider_net.c
+++ b/drivers/net/spider_net.c
@@ -994,15 +994,13 @@ spider_net_pass_skb_up(struct spider_net_descr *descr,
994 skb->protocol = eth_type_trans(skb, netdev); 994 skb->protocol = eth_type_trans(skb, netdev);
995 995
996 /* checksum offload */ 996 /* checksum offload */
997 if (card->options.rx_csum) { 997 skb_checksum_none_assert(skb);
998 if (netdev->features & NETIF_F_RXCSUM) {
998 if ( ( (data_status & SPIDER_NET_DATA_STATUS_CKSUM_MASK) == 999 if ( ( (data_status & SPIDER_NET_DATA_STATUS_CKSUM_MASK) ==
999 SPIDER_NET_DATA_STATUS_CKSUM_MASK) && 1000 SPIDER_NET_DATA_STATUS_CKSUM_MASK) &&
1000 !(data_error & SPIDER_NET_DATA_ERR_CKSUM_MASK)) 1001 !(data_error & SPIDER_NET_DATA_ERR_CKSUM_MASK))
1001 skb->ip_summed = CHECKSUM_UNNECESSARY; 1002 skb->ip_summed = CHECKSUM_UNNECESSARY;
1002 else 1003 }
1003 skb->ip_summed = CHECKSUM_NONE;
1004 } else
1005 skb->ip_summed = CHECKSUM_NONE;
1006 1004
1007 if (data_status & SPIDER_NET_VLAN_PACKET) { 1005 if (data_status & SPIDER_NET_VLAN_PACKET) {
1008 /* further enhancements: HW-accel VLAN 1006 /* further enhancements: HW-accel VLAN
@@ -2322,14 +2320,15 @@ spider_net_setup_netdev(struct spider_net_card *card)
2322 card->aneg_timer.function = spider_net_link_phy; 2320 card->aneg_timer.function = spider_net_link_phy;
2323 card->aneg_timer.data = (unsigned long) card; 2321 card->aneg_timer.data = (unsigned long) card;
2324 2322
2325 card->options.rx_csum = SPIDER_NET_RX_CSUM_DEFAULT;
2326
2327 netif_napi_add(netdev, &card->napi, 2323 netif_napi_add(netdev, &card->napi,
2328 spider_net_poll, SPIDER_NET_NAPI_WEIGHT); 2324 spider_net_poll, SPIDER_NET_NAPI_WEIGHT);
2329 2325
2330 spider_net_setup_netdev_ops(netdev); 2326 spider_net_setup_netdev_ops(netdev);
2331 2327
2332 netdev->features = NETIF_F_IP_CSUM | NETIF_F_LLTX; 2328 netdev->hw_features = NETIF_F_RXCSUM | NETIF_F_IP_CSUM;
2329 if (SPIDER_NET_RX_CSUM_DEFAULT)
2330 netdev->features |= NETIF_F_RXCSUM;
2331 netdev->features |= NETIF_F_IP_CSUM | NETIF_F_LLTX;
2333 /* some time: NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX | 2332 /* some time: NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX |
2334 * NETIF_F_HW_VLAN_FILTER */ 2333 * NETIF_F_HW_VLAN_FILTER */
2335 2334