diff options
Diffstat (limited to 'drivers/net')
34 files changed, 143 insertions, 187 deletions
diff --git a/drivers/net/3c59x.c b/drivers/net/3c59x.c index e1e53bbd150b..af301f09d674 100644 --- a/drivers/net/3c59x.c +++ b/drivers/net/3c59x.c | |||
@@ -2077,7 +2077,7 @@ boomerang_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
2077 | 2077 | ||
2078 | vp->tx_ring[entry].next = 0; | 2078 | vp->tx_ring[entry].next = 0; |
2079 | #if DO_ZEROCOPY | 2079 | #if DO_ZEROCOPY |
2080 | if (skb->ip_summed != CHECKSUM_HW) | 2080 | if (skb->ip_summed != CHECKSUM_PARTIAL) |
2081 | vp->tx_ring[entry].status = cpu_to_le32(skb->len | TxIntrUploaded); | 2081 | vp->tx_ring[entry].status = cpu_to_le32(skb->len | TxIntrUploaded); |
2082 | else | 2082 | else |
2083 | vp->tx_ring[entry].status = cpu_to_le32(skb->len | TxIntrUploaded | AddTCPChksum | AddUDPChksum); | 2083 | vp->tx_ring[entry].status = cpu_to_le32(skb->len | TxIntrUploaded | AddTCPChksum | AddUDPChksum); |
diff --git a/drivers/net/8139cp.c b/drivers/net/8139cp.c index 5ba11fa08147..5a4990ae3730 100644 --- a/drivers/net/8139cp.c +++ b/drivers/net/8139cp.c | |||
@@ -805,7 +805,7 @@ static int cp_start_xmit (struct sk_buff *skb, struct net_device *dev) | |||
805 | 805 | ||
806 | if (mss) | 806 | if (mss) |
807 | flags |= LargeSend | ((mss & MSSMask) << MSSShift); | 807 | flags |= LargeSend | ((mss & MSSMask) << MSSShift); |
808 | else if (skb->ip_summed == CHECKSUM_HW) { | 808 | else if (skb->ip_summed == CHECKSUM_PARTIAL) { |
809 | const struct iphdr *ip = skb->nh.iph; | 809 | const struct iphdr *ip = skb->nh.iph; |
810 | if (ip->protocol == IPPROTO_TCP) | 810 | if (ip->protocol == IPPROTO_TCP) |
811 | flags |= IPCS | TCPCS; | 811 | flags |= IPCS | TCPCS; |
@@ -855,7 +855,7 @@ static int cp_start_xmit (struct sk_buff *skb, struct net_device *dev) | |||
855 | if (mss) | 855 | if (mss) |
856 | ctrl |= LargeSend | | 856 | ctrl |= LargeSend | |
857 | ((mss & MSSMask) << MSSShift); | 857 | ((mss & MSSMask) << MSSShift); |
858 | else if (skb->ip_summed == CHECKSUM_HW) { | 858 | else if (skb->ip_summed == CHECKSUM_PARTIAL) { |
859 | if (ip->protocol == IPPROTO_TCP) | 859 | if (ip->protocol == IPPROTO_TCP) |
860 | ctrl |= IPCS | TCPCS; | 860 | ctrl |= IPCS | TCPCS; |
861 | else if (ip->protocol == IPPROTO_UDP) | 861 | else if (ip->protocol == IPPROTO_UDP) |
@@ -884,7 +884,7 @@ static int cp_start_xmit (struct sk_buff *skb, struct net_device *dev) | |||
884 | txd->addr = cpu_to_le64(first_mapping); | 884 | txd->addr = cpu_to_le64(first_mapping); |
885 | wmb(); | 885 | wmb(); |
886 | 886 | ||
887 | if (skb->ip_summed == CHECKSUM_HW) { | 887 | if (skb->ip_summed == CHECKSUM_PARTIAL) { |
888 | if (ip->protocol == IPPROTO_TCP) | 888 | if (ip->protocol == IPPROTO_TCP) |
889 | txd->opts1 = cpu_to_le32(first_eor | first_len | | 889 | txd->opts1 = cpu_to_le32(first_eor | first_len | |
890 | FirstFrag | DescOwn | | 890 | FirstFrag | DescOwn | |
diff --git a/drivers/net/acenic.c b/drivers/net/acenic.c index 0473c6d14b4a..a075246f6f43 100644 --- a/drivers/net/acenic.c +++ b/drivers/net/acenic.c | |||
@@ -2040,7 +2040,7 @@ static void ace_rx_int(struct net_device *dev, u32 rxretprd, u32 rxretcsm) | |||
2040 | */ | 2040 | */ |
2041 | if (bd_flags & BD_FLG_TCP_UDP_SUM) { | 2041 | if (bd_flags & BD_FLG_TCP_UDP_SUM) { |
2042 | skb->csum = htons(csum); | 2042 | skb->csum = htons(csum); |
2043 | skb->ip_summed = CHECKSUM_HW; | 2043 | skb->ip_summed = CHECKSUM_COMPLETE; |
2044 | } else { | 2044 | } else { |
2045 | skb->ip_summed = CHECKSUM_NONE; | 2045 | skb->ip_summed = CHECKSUM_NONE; |
2046 | } | 2046 | } |
@@ -2511,7 +2511,7 @@ restart: | |||
2511 | 2511 | ||
2512 | mapping = ace_map_tx_skb(ap, skb, skb, idx); | 2512 | mapping = ace_map_tx_skb(ap, skb, skb, idx); |
2513 | flagsize = (skb->len << 16) | (BD_FLG_END); | 2513 | flagsize = (skb->len << 16) | (BD_FLG_END); |
2514 | if (skb->ip_summed == CHECKSUM_HW) | 2514 | if (skb->ip_summed == CHECKSUM_PARTIAL) |
2515 | flagsize |= BD_FLG_TCP_UDP_SUM; | 2515 | flagsize |= BD_FLG_TCP_UDP_SUM; |
2516 | #if ACENIC_DO_VLAN | 2516 | #if ACENIC_DO_VLAN |
2517 | if (vlan_tx_tag_present(skb)) { | 2517 | if (vlan_tx_tag_present(skb)) { |
@@ -2534,7 +2534,7 @@ restart: | |||
2534 | 2534 | ||
2535 | mapping = ace_map_tx_skb(ap, skb, NULL, idx); | 2535 | mapping = ace_map_tx_skb(ap, skb, NULL, idx); |
2536 | flagsize = (skb_headlen(skb) << 16); | 2536 | flagsize = (skb_headlen(skb) << 16); |
2537 | if (skb->ip_summed == CHECKSUM_HW) | 2537 | if (skb->ip_summed == CHECKSUM_PARTIAL) |
2538 | flagsize |= BD_FLG_TCP_UDP_SUM; | 2538 | flagsize |= BD_FLG_TCP_UDP_SUM; |
2539 | #if ACENIC_DO_VLAN | 2539 | #if ACENIC_DO_VLAN |
2540 | if (vlan_tx_tag_present(skb)) { | 2540 | if (vlan_tx_tag_present(skb)) { |
@@ -2560,7 +2560,7 @@ restart: | |||
2560 | PCI_DMA_TODEVICE); | 2560 | PCI_DMA_TODEVICE); |
2561 | 2561 | ||
2562 | flagsize = (frag->size << 16); | 2562 | flagsize = (frag->size << 16); |
2563 | if (skb->ip_summed == CHECKSUM_HW) | 2563 | if (skb->ip_summed == CHECKSUM_PARTIAL) |
2564 | flagsize |= BD_FLG_TCP_UDP_SUM; | 2564 | flagsize |= BD_FLG_TCP_UDP_SUM; |
2565 | idx = (idx + 1) % ACE_TX_RING_ENTRIES(ap); | 2565 | idx = (idx + 1) % ACE_TX_RING_ENTRIES(ap); |
2566 | 2566 | ||
diff --git a/drivers/net/arcnet/com20020-pci.c b/drivers/net/arcnet/com20020-pci.c index fc256c197cd6..98d326b23c92 100644 --- a/drivers/net/arcnet/com20020-pci.c +++ b/drivers/net/arcnet/com20020-pci.c | |||
@@ -161,6 +161,7 @@ static struct pci_device_id com20020pci_id_table[] = { | |||
161 | { 0x1571, 0xa204, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ARC_CAN_10MBIT }, | 161 | { 0x1571, 0xa204, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ARC_CAN_10MBIT }, |
162 | { 0x1571, 0xa205, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ARC_CAN_10MBIT }, | 162 | { 0x1571, 0xa205, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ARC_CAN_10MBIT }, |
163 | { 0x1571, 0xa206, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ARC_CAN_10MBIT }, | 163 | { 0x1571, 0xa206, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ARC_CAN_10MBIT }, |
164 | { 0x10B5, 0x9030, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ARC_CAN_10MBIT }, | ||
164 | { 0x10B5, 0x9050, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ARC_CAN_10MBIT }, | 165 | { 0x10B5, 0x9050, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ARC_CAN_10MBIT }, |
165 | {0,} | 166 | {0,} |
166 | }; | 167 | }; |
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c index b158de28d6f9..7fcf015021ec 100644 --- a/drivers/net/bnx2.c +++ b/drivers/net/bnx2.c | |||
@@ -4423,7 +4423,7 @@ bnx2_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
4423 | ring_prod = TX_RING_IDX(prod); | 4423 | ring_prod = TX_RING_IDX(prod); |
4424 | 4424 | ||
4425 | vlan_tag_flags = 0; | 4425 | vlan_tag_flags = 0; |
4426 | if (skb->ip_summed == CHECKSUM_HW) { | 4426 | if (skb->ip_summed == CHECKSUM_PARTIAL) { |
4427 | vlan_tag_flags |= TX_BD_FLAGS_TCP_UDP_CKSUM; | 4427 | vlan_tag_flags |= TX_BD_FLAGS_TCP_UDP_CKSUM; |
4428 | } | 4428 | } |
4429 | 4429 | ||
diff --git a/drivers/net/cassini.c b/drivers/net/cassini.c index 275057ca3dbc..7694365092f8 100644 --- a/drivers/net/cassini.c +++ b/drivers/net/cassini.c | |||
@@ -2167,7 +2167,7 @@ end_copy_pkt: | |||
2167 | cas_page_unmap(addr); | 2167 | cas_page_unmap(addr); |
2168 | } | 2168 | } |
2169 | skb->csum = ntohs(i ^ 0xffff); | 2169 | skb->csum = ntohs(i ^ 0xffff); |
2170 | skb->ip_summed = CHECKSUM_HW; | 2170 | skb->ip_summed = CHECKSUM_COMPLETE; |
2171 | skb->protocol = eth_type_trans(skb, cp->dev); | 2171 | skb->protocol = eth_type_trans(skb, cp->dev); |
2172 | return len; | 2172 | return len; |
2173 | } | 2173 | } |
@@ -2821,7 +2821,7 @@ static inline int cas_xmit_tx_ringN(struct cas *cp, int ring, | |||
2821 | } | 2821 | } |
2822 | 2822 | ||
2823 | ctrl = 0; | 2823 | ctrl = 0; |
2824 | if (skb->ip_summed == CHECKSUM_HW) { | 2824 | if (skb->ip_summed == CHECKSUM_PARTIAL) { |
2825 | u64 csum_start_off, csum_stuff_off; | 2825 | u64 csum_start_off, csum_stuff_off; |
2826 | 2826 | ||
2827 | csum_start_off = (u64) (skb->h.raw - skb->data); | 2827 | csum_start_off = (u64) (skb->h.raw - skb->data); |
diff --git a/drivers/net/chelsio/sge.c b/drivers/net/chelsio/sge.c index 61b3754f50ff..ddd0bdb498f4 100644 --- a/drivers/net/chelsio/sge.c +++ b/drivers/net/chelsio/sge.c | |||
@@ -1470,9 +1470,9 @@ int t1_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
1470 | } | 1470 | } |
1471 | 1471 | ||
1472 | if (!(adapter->flags & UDP_CSUM_CAPABLE) && | 1472 | if (!(adapter->flags & UDP_CSUM_CAPABLE) && |
1473 | skb->ip_summed == CHECKSUM_HW && | 1473 | skb->ip_summed == CHECKSUM_PARTIAL && |
1474 | skb->nh.iph->protocol == IPPROTO_UDP) | 1474 | skb->nh.iph->protocol == IPPROTO_UDP) |
1475 | if (unlikely(skb_checksum_help(skb, 0))) { | 1475 | if (unlikely(skb_checksum_help(skb))) { |
1476 | dev_kfree_skb_any(skb); | 1476 | dev_kfree_skb_any(skb); |
1477 | return NETDEV_TX_OK; | 1477 | return NETDEV_TX_OK; |
1478 | } | 1478 | } |
@@ -1495,11 +1495,11 @@ int t1_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
1495 | cpl = (struct cpl_tx_pkt *)__skb_push(skb, sizeof(*cpl)); | 1495 | cpl = (struct cpl_tx_pkt *)__skb_push(skb, sizeof(*cpl)); |
1496 | cpl->opcode = CPL_TX_PKT; | 1496 | cpl->opcode = CPL_TX_PKT; |
1497 | cpl->ip_csum_dis = 1; /* SW calculates IP csum */ | 1497 | cpl->ip_csum_dis = 1; /* SW calculates IP csum */ |
1498 | cpl->l4_csum_dis = skb->ip_summed == CHECKSUM_HW ? 0 : 1; | 1498 | cpl->l4_csum_dis = skb->ip_summed == CHECKSUM_PARTIAL ? 0 : 1; |
1499 | /* the length field isn't used so don't bother setting it */ | 1499 | /* the length field isn't used so don't bother setting it */ |
1500 | 1500 | ||
1501 | st->tx_cso += (skb->ip_summed == CHECKSUM_HW); | 1501 | st->tx_cso += (skb->ip_summed == CHECKSUM_PARTIAL); |
1502 | sge->stats.tx_do_cksum += (skb->ip_summed == CHECKSUM_HW); | 1502 | sge->stats.tx_do_cksum += (skb->ip_summed == CHECKSUM_PARTIAL); |
1503 | sge->stats.tx_reg_pkts++; | 1503 | sge->stats.tx_reg_pkts++; |
1504 | } | 1504 | } |
1505 | cpl->iff = dev->if_port; | 1505 | cpl->iff = dev->if_port; |
diff --git a/drivers/net/dl2k.c b/drivers/net/dl2k.c index c5c80da239de..7e95cf1a4872 100644 --- a/drivers/net/dl2k.c +++ b/drivers/net/dl2k.c | |||
@@ -611,7 +611,7 @@ start_xmit (struct sk_buff *skb, struct net_device *dev) | |||
611 | txdesc = &np->tx_ring[entry]; | 611 | txdesc = &np->tx_ring[entry]; |
612 | 612 | ||
613 | #if 0 | 613 | #if 0 |
614 | if (skb->ip_summed == CHECKSUM_HW) { | 614 | if (skb->ip_summed == CHECKSUM_PARTIAL) { |
615 | txdesc->status |= | 615 | txdesc->status |= |
616 | cpu_to_le64 (TCPChecksumEnable | UDPChecksumEnable | | 616 | cpu_to_le64 (TCPChecksumEnable | UDPChecksumEnable | |
617 | IPChecksumEnable); | 617 | IPChecksumEnable); |
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c index 88276a6e656c..3f6a752700a1 100644 --- a/drivers/net/e1000/e1000_main.c +++ b/drivers/net/e1000/e1000_main.c | |||
@@ -2631,7 +2631,7 @@ e1000_tx_csum(struct e1000_adapter *adapter, struct e1000_tx_ring *tx_ring, | |||
2631 | unsigned int i; | 2631 | unsigned int i; |
2632 | uint8_t css; | 2632 | uint8_t css; |
2633 | 2633 | ||
2634 | if (likely(skb->ip_summed == CHECKSUM_HW)) { | 2634 | if (likely(skb->ip_summed == CHECKSUM_PARTIAL)) { |
2635 | css = skb->h.raw - skb->data; | 2635 | css = skb->h.raw - skb->data; |
2636 | 2636 | ||
2637 | i = tx_ring->next_to_use; | 2637 | i = tx_ring->next_to_use; |
@@ -2958,11 +2958,11 @@ e1000_xmit_frame(struct sk_buff *skb, struct net_device *netdev) | |||
2958 | } | 2958 | } |
2959 | 2959 | ||
2960 | /* reserve a descriptor for the offload context */ | 2960 | /* reserve a descriptor for the offload context */ |
2961 | if ((mss) || (skb->ip_summed == CHECKSUM_HW)) | 2961 | if ((mss) || (skb->ip_summed == CHECKSUM_PARTIAL)) |
2962 | count++; | 2962 | count++; |
2963 | count++; | 2963 | count++; |
2964 | #else | 2964 | #else |
2965 | if (skb->ip_summed == CHECKSUM_HW) | 2965 | if (skb->ip_summed == CHECKSUM_PARTIAL) |
2966 | count++; | 2966 | count++; |
2967 | #endif | 2967 | #endif |
2968 | 2968 | ||
@@ -3639,7 +3639,7 @@ e1000_rx_checksum(struct e1000_adapter *adapter, | |||
3639 | */ | 3639 | */ |
3640 | csum = ntohl(csum ^ 0xFFFF); | 3640 | csum = ntohl(csum ^ 0xFFFF); |
3641 | skb->csum = csum; | 3641 | skb->csum = csum; |
3642 | skb->ip_summed = CHECKSUM_HW; | 3642 | skb->ip_summed = CHECKSUM_COMPLETE; |
3643 | } | 3643 | } |
3644 | adapter->hw_csum_good++; | 3644 | adapter->hw_csum_good++; |
3645 | } | 3645 | } |
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c index b8df5ca4e6aa..97db910fbc8c 100644 --- a/drivers/net/forcedeth.c +++ b/drivers/net/forcedeth.c | |||
@@ -1540,7 +1540,8 @@ static int nv_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
1540 | tx_flags_extra = NV_TX2_TSO | (skb_shinfo(skb)->gso_size << NV_TX2_TSO_SHIFT); | 1540 | tx_flags_extra = NV_TX2_TSO | (skb_shinfo(skb)->gso_size << NV_TX2_TSO_SHIFT); |
1541 | else | 1541 | else |
1542 | #endif | 1542 | #endif |
1543 | tx_flags_extra = (skb->ip_summed == CHECKSUM_HW ? (NV_TX2_CHECKSUM_L3|NV_TX2_CHECKSUM_L4) : 0); | 1543 | tx_flags_extra = skb->ip_summed == CHECKSUM_PARTIAL ? |
1544 | NV_TX2_CHECKSUM_L3 | NV_TX2_CHECKSUM_L4 : 0; | ||
1544 | 1545 | ||
1545 | /* vlan tag */ | 1546 | /* vlan tag */ |
1546 | if (np->vlangrp && vlan_tx_tag_present(skb)) { | 1547 | if (np->vlangrp && vlan_tx_tag_present(skb)) { |
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c index 4788a41da1c0..280b114e253f 100644 --- a/drivers/net/gianfar.c +++ b/drivers/net/gianfar.c | |||
@@ -947,7 +947,7 @@ static int gfar_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
947 | 947 | ||
948 | /* Set up checksumming */ | 948 | /* Set up checksumming */ |
949 | if (likely((dev->features & NETIF_F_IP_CSUM) | 949 | if (likely((dev->features & NETIF_F_IP_CSUM) |
950 | && (CHECKSUM_HW == skb->ip_summed))) { | 950 | && (CHECKSUM_PARTIAL == skb->ip_summed))) { |
951 | fcb = gfar_add_fcb(skb, txbdp); | 951 | fcb = gfar_add_fcb(skb, txbdp); |
952 | status |= TXBD_TOE; | 952 | status |= TXBD_TOE; |
953 | gfar_tx_checksum(skb, fcb); | 953 | gfar_tx_checksum(skb, fcb); |
diff --git a/drivers/net/hamachi.c b/drivers/net/hamachi.c index b59bab9e9792..5c89ae78a519 100644 --- a/drivers/net/hamachi.c +++ b/drivers/net/hamachi.c | |||
@@ -1648,7 +1648,7 @@ static int hamachi_rx(struct net_device *dev) | |||
1648 | * could do the pseudo myself and return | 1648 | * could do the pseudo myself and return |
1649 | * CHECKSUM_UNNECESSARY | 1649 | * CHECKSUM_UNNECESSARY |
1650 | */ | 1650 | */ |
1651 | skb->ip_summed = CHECKSUM_HW; | 1651 | skb->ip_summed = CHECKSUM_COMPLETE; |
1652 | } | 1652 | } |
1653 | } | 1653 | } |
1654 | } | 1654 | } |
diff --git a/drivers/net/ibm_emac/ibm_emac_core.c b/drivers/net/ibm_emac/ibm_emac_core.c index 944eea66e790..d52e3bd01301 100644 --- a/drivers/net/ibm_emac/ibm_emac_core.c +++ b/drivers/net/ibm_emac/ibm_emac_core.c | |||
@@ -1036,7 +1036,7 @@ static inline u16 emac_tx_csum(struct ocp_enet_private *dev, | |||
1036 | struct sk_buff *skb) | 1036 | struct sk_buff *skb) |
1037 | { | 1037 | { |
1038 | #if defined(CONFIG_IBM_EMAC_TAH) | 1038 | #if defined(CONFIG_IBM_EMAC_TAH) |
1039 | if (skb->ip_summed == CHECKSUM_HW) { | 1039 | if (skb->ip_summed == CHECKSUM_PARTIAL) { |
1040 | ++dev->stats.tx_packets_csum; | 1040 | ++dev->stats.tx_packets_csum; |
1041 | return EMAC_TX_CTRL_TAH_CSUM; | 1041 | return EMAC_TX_CTRL_TAH_CSUM; |
1042 | } | 1042 | } |
diff --git a/drivers/net/ioc3-eth.c b/drivers/net/ioc3-eth.c index 7acba88f9b56..87650237dc5c 100644 --- a/drivers/net/ioc3-eth.c +++ b/drivers/net/ioc3-eth.c | |||
@@ -1387,7 +1387,7 @@ static int ioc3_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
1387 | * MAC header which should not be summed and the TCP/UDP pseudo headers | 1387 | * MAC header which should not be summed and the TCP/UDP pseudo headers |
1388 | * manually. | 1388 | * manually. |
1389 | */ | 1389 | */ |
1390 | if (skb->ip_summed == CHECKSUM_HW) { | 1390 | if (skb->ip_summed == CHECKSUM_PARTIAL) { |
1391 | int proto = ntohs(skb->nh.iph->protocol); | 1391 | int proto = ntohs(skb->nh.iph->protocol); |
1392 | unsigned int csoff; | 1392 | unsigned int csoff; |
1393 | struct iphdr *ih = skb->nh.iph; | 1393 | struct iphdr *ih = skb->nh.iph; |
diff --git a/drivers/net/irda/ali-ircc.c b/drivers/net/irda/ali-ircc.c index e3c8cd5eca67..68d4c418cb98 100644 --- a/drivers/net/irda/ali-ircc.c +++ b/drivers/net/irda/ali-ircc.c | |||
@@ -249,7 +249,7 @@ static void __exit ali_ircc_cleanup(void) | |||
249 | 249 | ||
250 | IRDA_DEBUG(2, "%s(), ---------------- Start ----------------\n", __FUNCTION__); | 250 | IRDA_DEBUG(2, "%s(), ---------------- Start ----------------\n", __FUNCTION__); |
251 | 251 | ||
252 | for (i=0; i < 4; i++) { | 252 | for (i=0; i < ARRAY_SIZE(dev_self); i++) { |
253 | if (dev_self[i]) | 253 | if (dev_self[i]) |
254 | ali_ircc_close(dev_self[i]); | 254 | ali_ircc_close(dev_self[i]); |
255 | } | 255 | } |
@@ -273,6 +273,12 @@ static int ali_ircc_open(int i, chipio_t *info) | |||
273 | int err; | 273 | int err; |
274 | 274 | ||
275 | IRDA_DEBUG(2, "%s(), ---------------- Start ----------------\n", __FUNCTION__); | 275 | IRDA_DEBUG(2, "%s(), ---------------- Start ----------------\n", __FUNCTION__); |
276 | |||
277 | if (i >= ARRAY_SIZE(dev_self)) { | ||
278 | IRDA_ERROR("%s(), maximum number of supported chips reached!\n", | ||
279 | __FUNCTION__); | ||
280 | return -ENOMEM; | ||
281 | } | ||
276 | 282 | ||
277 | /* Set FIR FIFO and DMA Threshold */ | 283 | /* Set FIR FIFO and DMA Threshold */ |
278 | if ((ali_ircc_setup(info)) == -1) | 284 | if ((ali_ircc_setup(info)) == -1) |
diff --git a/drivers/net/irda/irport.c b/drivers/net/irda/irport.c index 44efd49bf4a9..ba4f3eb988b3 100644 --- a/drivers/net/irda/irport.c +++ b/drivers/net/irda/irport.c | |||
@@ -1090,7 +1090,7 @@ static int __init irport_init(void) | |||
1090 | { | 1090 | { |
1091 | int i; | 1091 | int i; |
1092 | 1092 | ||
1093 | for (i=0; (io[i] < 2000) && (i < 4); i++) { | 1093 | for (i=0; (io[i] < 2000) && (i < ARRAY_SIZE(dev_self)); i++) { |
1094 | if (irport_open(i, io[i], irq[i]) != NULL) | 1094 | if (irport_open(i, io[i], irq[i]) != NULL) |
1095 | return 0; | 1095 | return 0; |
1096 | } | 1096 | } |
@@ -1112,7 +1112,7 @@ static void __exit irport_cleanup(void) | |||
1112 | 1112 | ||
1113 | IRDA_DEBUG( 4, "%s()\n", __FUNCTION__); | 1113 | IRDA_DEBUG( 4, "%s()\n", __FUNCTION__); |
1114 | 1114 | ||
1115 | for (i=0; i < 4; i++) { | 1115 | for (i=0; i < ARRAY_SIZE(dev_self); i++) { |
1116 | if (dev_self[i]) | 1116 | if (dev_self[i]) |
1117 | irport_close(dev_self[i]); | 1117 | irport_close(dev_self[i]); |
1118 | } | 1118 | } |
diff --git a/drivers/net/irda/via-ircc.c b/drivers/net/irda/via-ircc.c index 8bafb455c102..79b85f327500 100644 --- a/drivers/net/irda/via-ircc.c +++ b/drivers/net/irda/via-ircc.c | |||
@@ -279,7 +279,7 @@ static void via_ircc_clean(void) | |||
279 | 279 | ||
280 | IRDA_DEBUG(3, "%s()\n", __FUNCTION__); | 280 | IRDA_DEBUG(3, "%s()\n", __FUNCTION__); |
281 | 281 | ||
282 | for (i=0; i < 4; i++) { | 282 | for (i=0; i < ARRAY_SIZE(dev_self); i++) { |
283 | if (dev_self[i]) | 283 | if (dev_self[i]) |
284 | via_ircc_close(dev_self[i]); | 284 | via_ircc_close(dev_self[i]); |
285 | } | 285 | } |
@@ -327,6 +327,9 @@ static __devinit int via_ircc_open(int i, chipio_t * info, unsigned int id) | |||
327 | 327 | ||
328 | IRDA_DEBUG(3, "%s()\n", __FUNCTION__); | 328 | IRDA_DEBUG(3, "%s()\n", __FUNCTION__); |
329 | 329 | ||
330 | if (i >= ARRAY_SIZE(dev_self)) | ||
331 | return -ENOMEM; | ||
332 | |||
330 | /* Allocate new instance of the driver */ | 333 | /* Allocate new instance of the driver */ |
331 | dev = alloc_irdadev(sizeof(struct via_ircc_cb)); | 334 | dev = alloc_irdadev(sizeof(struct via_ircc_cb)); |
332 | if (dev == NULL) | 335 | if (dev == NULL) |
diff --git a/drivers/net/irda/w83977af_ir.c b/drivers/net/irda/w83977af_ir.c index b69776e00951..7de1afdeec3d 100644 --- a/drivers/net/irda/w83977af_ir.c +++ b/drivers/net/irda/w83977af_ir.c | |||
@@ -116,7 +116,7 @@ static int __init w83977af_init(void) | |||
116 | 116 | ||
117 | IRDA_DEBUG(0, "%s()\n", __FUNCTION__ ); | 117 | IRDA_DEBUG(0, "%s()\n", __FUNCTION__ ); |
118 | 118 | ||
119 | for (i=0; (io[i] < 2000) && (i < 4); i++) { | 119 | for (i=0; (io[i] < 2000) && (i < ARRAY_SIZE(dev_self)); i++) { |
120 | if (w83977af_open(i, io[i], irq[i], dma[i]) == 0) | 120 | if (w83977af_open(i, io[i], irq[i], dma[i]) == 0) |
121 | return 0; | 121 | return 0; |
122 | } | 122 | } |
@@ -135,7 +135,7 @@ static void __exit w83977af_cleanup(void) | |||
135 | 135 | ||
136 | IRDA_DEBUG(4, "%s()\n", __FUNCTION__ ); | 136 | IRDA_DEBUG(4, "%s()\n", __FUNCTION__ ); |
137 | 137 | ||
138 | for (i=0; i < 4; i++) { | 138 | for (i=0; i < ARRAY_SIZE(dev_self); i++) { |
139 | if (dev_self[i]) | 139 | if (dev_self[i]) |
140 | w83977af_close(dev_self[i]); | 140 | w83977af_close(dev_self[i]); |
141 | } | 141 | } |
diff --git a/drivers/net/ixgb/ixgb_main.c b/drivers/net/ixgb/ixgb_main.c index e36dee1dd333..2e0f4b950a90 100644 --- a/drivers/net/ixgb/ixgb_main.c +++ b/drivers/net/ixgb/ixgb_main.c | |||
@@ -1246,7 +1246,7 @@ ixgb_tx_csum(struct ixgb_adapter *adapter, struct sk_buff *skb) | |||
1246 | unsigned int i; | 1246 | unsigned int i; |
1247 | uint8_t css, cso; | 1247 | uint8_t css, cso; |
1248 | 1248 | ||
1249 | if(likely(skb->ip_summed == CHECKSUM_HW)) { | 1249 | if(likely(skb->ip_summed == CHECKSUM_PARTIAL)) { |
1250 | struct ixgb_buffer *buffer_info; | 1250 | struct ixgb_buffer *buffer_info; |
1251 | css = skb->h.raw - skb->data; | 1251 | css = skb->h.raw - skb->data; |
1252 | cso = (skb->h.raw + skb->csum) - skb->data; | 1252 | cso = (skb->h.raw + skb->csum) - skb->data; |
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c index 6a74608eb9a3..7f8e5ad1b704 100644 --- a/drivers/net/mv643xx_eth.c +++ b/drivers/net/mv643xx_eth.c | |||
@@ -1147,7 +1147,7 @@ static void eth_tx_submit_descs_for_skb(struct mv643xx_private *mp, | |||
1147 | desc->byte_cnt = length; | 1147 | desc->byte_cnt = length; |
1148 | desc->buf_ptr = dma_map_single(NULL, skb->data, length, DMA_TO_DEVICE); | 1148 | desc->buf_ptr = dma_map_single(NULL, skb->data, length, DMA_TO_DEVICE); |
1149 | 1149 | ||
1150 | if (skb->ip_summed == CHECKSUM_HW) { | 1150 | if (skb->ip_summed == CHECKSUM_PARTIAL) { |
1151 | BUG_ON(skb->protocol != ETH_P_IP); | 1151 | BUG_ON(skb->protocol != ETH_P_IP); |
1152 | 1152 | ||
1153 | cmd_sts |= ETH_GEN_TCP_UDP_CHECKSUM | | 1153 | cmd_sts |= ETH_GEN_TCP_UDP_CHECKSUM | |
diff --git a/drivers/net/myri10ge/myri10ge.c b/drivers/net/myri10ge/myri10ge.c index 2773440c84be..4330197994df 100644 --- a/drivers/net/myri10ge/myri10ge.c +++ b/drivers/net/myri10ge/myri10ge.c | |||
@@ -947,7 +947,7 @@ static inline void myri10ge_vlan_ip_csum(struct sk_buff *skb, u16 hw_csum) | |||
947 | (vh->h_vlan_encapsulated_proto == htons(ETH_P_IP) || | 947 | (vh->h_vlan_encapsulated_proto == htons(ETH_P_IP) || |
948 | vh->h_vlan_encapsulated_proto == htons(ETH_P_IPV6))) { | 948 | vh->h_vlan_encapsulated_proto == htons(ETH_P_IPV6))) { |
949 | skb->csum = hw_csum; | 949 | skb->csum = hw_csum; |
950 | skb->ip_summed = CHECKSUM_HW; | 950 | skb->ip_summed = CHECKSUM_COMPLETE; |
951 | } | 951 | } |
952 | } | 952 | } |
953 | 953 | ||
@@ -989,7 +989,7 @@ myri10ge_rx_done(struct myri10ge_priv *mgp, struct myri10ge_rx_buf *rx, | |||
989 | if ((skb->protocol == ntohs(ETH_P_IP)) || | 989 | if ((skb->protocol == ntohs(ETH_P_IP)) || |
990 | (skb->protocol == ntohs(ETH_P_IPV6))) { | 990 | (skb->protocol == ntohs(ETH_P_IPV6))) { |
991 | skb->csum = ntohs((u16) csum); | 991 | skb->csum = ntohs((u16) csum); |
992 | skb->ip_summed = CHECKSUM_HW; | 992 | skb->ip_summed = CHECKSUM_COMPLETE; |
993 | } else | 993 | } else |
994 | myri10ge_vlan_ip_csum(skb, ntohs((u16) csum)); | 994 | myri10ge_vlan_ip_csum(skb, ntohs((u16) csum)); |
995 | } | 995 | } |
@@ -1953,13 +1953,13 @@ again: | |||
1953 | pseudo_hdr_offset = 0; | 1953 | pseudo_hdr_offset = 0; |
1954 | odd_flag = 0; | 1954 | odd_flag = 0; |
1955 | flags = (MXGEFW_FLAGS_NO_TSO | MXGEFW_FLAGS_FIRST); | 1955 | flags = (MXGEFW_FLAGS_NO_TSO | MXGEFW_FLAGS_FIRST); |
1956 | if (likely(skb->ip_summed == CHECKSUM_HW)) { | 1956 | if (likely(skb->ip_summed == CHECKSUM_PARTIAL)) { |
1957 | cksum_offset = (skb->h.raw - skb->data); | 1957 | cksum_offset = (skb->h.raw - skb->data); |
1958 | pseudo_hdr_offset = (skb->h.raw + skb->csum) - skb->data; | 1958 | pseudo_hdr_offset = (skb->h.raw + skb->csum) - skb->data; |
1959 | /* If the headers are excessively large, then we must | 1959 | /* If the headers are excessively large, then we must |
1960 | * fall back to a software checksum */ | 1960 | * fall back to a software checksum */ |
1961 | if (unlikely(cksum_offset > 255 || pseudo_hdr_offset > 127)) { | 1961 | if (unlikely(cksum_offset > 255 || pseudo_hdr_offset > 127)) { |
1962 | if (skb_checksum_help(skb, 0)) | 1962 | if (skb_checksum_help(skb)) |
1963 | goto drop; | 1963 | goto drop; |
1964 | cksum_offset = 0; | 1964 | cksum_offset = 0; |
1965 | pseudo_hdr_offset = 0; | 1965 | pseudo_hdr_offset = 0; |
diff --git a/drivers/net/ns83820.c b/drivers/net/ns83820.c index a05f6cbfdc0f..e10da1aa3d30 100644 --- a/drivers/net/ns83820.c +++ b/drivers/net/ns83820.c | |||
@@ -1153,7 +1153,7 @@ again: | |||
1153 | if (!nr_frags) | 1153 | if (!nr_frags) |
1154 | frag = NULL; | 1154 | frag = NULL; |
1155 | extsts = 0; | 1155 | extsts = 0; |
1156 | if (skb->ip_summed == CHECKSUM_HW) { | 1156 | if (skb->ip_summed == CHECKSUM_PARTIAL) { |
1157 | extsts |= EXTSTS_IPPKT; | 1157 | extsts |= EXTSTS_IPPKT; |
1158 | if (IPPROTO_TCP == skb->nh.iph->protocol) | 1158 | if (IPPROTO_TCP == skb->nh.iph->protocol) |
1159 | extsts |= EXTSTS_TCPPKT; | 1159 | extsts |= EXTSTS_TCPPKT; |
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c index 7ac599410978..4c47c5b10ba0 100644 --- a/drivers/net/r8169.c +++ b/drivers/net/r8169.c | |||
@@ -2259,7 +2259,7 @@ static inline u32 rtl8169_tso_csum(struct sk_buff *skb, struct net_device *dev) | |||
2259 | if (mss) | 2259 | if (mss) |
2260 | return LargeSend | ((mss & MSSMask) << MSSShift); | 2260 | return LargeSend | ((mss & MSSMask) << MSSShift); |
2261 | } | 2261 | } |
2262 | if (skb->ip_summed == CHECKSUM_HW) { | 2262 | if (skb->ip_summed == CHECKSUM_PARTIAL) { |
2263 | const struct iphdr *ip = skb->nh.iph; | 2263 | const struct iphdr *ip = skb->nh.iph; |
2264 | 2264 | ||
2265 | if (ip->protocol == IPPROTO_TCP) | 2265 | if (ip->protocol == IPPROTO_TCP) |
diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c index d579a44aab5c..f5dbeb27b6f0 100644 --- a/drivers/net/s2io.c +++ b/drivers/net/s2io.c | |||
@@ -3894,7 +3894,7 @@ static int s2io_xmit(struct sk_buff *skb, struct net_device *dev) | |||
3894 | txdp->Control_1 |= TXD_TCP_LSO_MSS(s2io_tcp_mss(skb)); | 3894 | txdp->Control_1 |= TXD_TCP_LSO_MSS(s2io_tcp_mss(skb)); |
3895 | } | 3895 | } |
3896 | #endif | 3896 | #endif |
3897 | if (skb->ip_summed == CHECKSUM_HW) { | 3897 | if (skb->ip_summed == CHECKSUM_PARTIAL) { |
3898 | txdp->Control_2 |= | 3898 | txdp->Control_2 |= |
3899 | (TXD_TX_CKO_IPV4_EN | TXD_TX_CKO_TCP_EN | | 3899 | (TXD_TX_CKO_IPV4_EN | TXD_TX_CKO_TCP_EN | |
3900 | TXD_TX_CKO_UDP_EN); | 3900 | TXD_TX_CKO_UDP_EN); |
diff --git a/drivers/net/sk98lin/skge.c b/drivers/net/sk98lin/skge.c index 0ecfc14e7990..99e92627642c 100644 --- a/drivers/net/sk98lin/skge.c +++ b/drivers/net/sk98lin/skge.c | |||
@@ -1559,7 +1559,7 @@ struct sk_buff *pMessage) /* pointer to send-message */ | |||
1559 | pTxd->VDataHigh = (SK_U32) (PhysAddr >> 32); | 1559 | pTxd->VDataHigh = (SK_U32) (PhysAddr >> 32); |
1560 | pTxd->pMBuf = pMessage; | 1560 | pTxd->pMBuf = pMessage; |
1561 | 1561 | ||
1562 | if (pMessage->ip_summed == CHECKSUM_HW) { | 1562 | if (pMessage->ip_summed == CHECKSUM_PARTIAL) { |
1563 | u16 hdrlen = pMessage->h.raw - pMessage->data; | 1563 | u16 hdrlen = pMessage->h.raw - pMessage->data; |
1564 | u16 offset = hdrlen + pMessage->csum; | 1564 | u16 offset = hdrlen + pMessage->csum; |
1565 | 1565 | ||
@@ -1678,7 +1678,7 @@ struct sk_buff *pMessage) /* pointer to send-message */ | |||
1678 | /* | 1678 | /* |
1679 | ** Does the HW need to evaluate checksum for TCP or UDP packets? | 1679 | ** Does the HW need to evaluate checksum for TCP or UDP packets? |
1680 | */ | 1680 | */ |
1681 | if (pMessage->ip_summed == CHECKSUM_HW) { | 1681 | if (pMessage->ip_summed == CHECKSUM_PARTIAL) { |
1682 | u16 hdrlen = pMessage->h.raw - pMessage->data; | 1682 | u16 hdrlen = pMessage->h.raw - pMessage->data; |
1683 | u16 offset = hdrlen + pMessage->csum; | 1683 | u16 offset = hdrlen + pMessage->csum; |
1684 | 1684 | ||
@@ -2158,7 +2158,7 @@ rx_start: | |||
2158 | 2158 | ||
2159 | #ifdef USE_SK_RX_CHECKSUM | 2159 | #ifdef USE_SK_RX_CHECKSUM |
2160 | pMsg->csum = pRxd->TcpSums & 0xffff; | 2160 | pMsg->csum = pRxd->TcpSums & 0xffff; |
2161 | pMsg->ip_summed = CHECKSUM_HW; | 2161 | pMsg->ip_summed = CHECKSUM_COMPLETE; |
2162 | #else | 2162 | #else |
2163 | pMsg->ip_summed = CHECKSUM_NONE; | 2163 | pMsg->ip_summed = CHECKSUM_NONE; |
2164 | #endif | 2164 | #endif |
diff --git a/drivers/net/skge.c b/drivers/net/skge.c index 4b267b85fff2..9142d91355bc 100644 --- a/drivers/net/skge.c +++ b/drivers/net/skge.c | |||
@@ -2328,7 +2328,7 @@ static int skge_xmit_frame(struct sk_buff *skb, struct net_device *dev) | |||
2328 | td->dma_lo = map; | 2328 | td->dma_lo = map; |
2329 | td->dma_hi = map >> 32; | 2329 | td->dma_hi = map >> 32; |
2330 | 2330 | ||
2331 | if (skb->ip_summed == CHECKSUM_HW) { | 2331 | if (skb->ip_summed == CHECKSUM_PARTIAL) { |
2332 | int offset = skb->h.raw - skb->data; | 2332 | int offset = skb->h.raw - skb->data; |
2333 | 2333 | ||
2334 | /* This seems backwards, but it is what the sk98lin | 2334 | /* This seems backwards, but it is what the sk98lin |
@@ -2630,7 +2630,7 @@ static struct sk_buff *skge_rx_get(struct net_device *dev, | |||
2630 | skb_put(skb, len); | 2630 | skb_put(skb, len); |
2631 | if (skge->rx_csum) { | 2631 | if (skge->rx_csum) { |
2632 | skb->csum = csum; | 2632 | skb->csum = csum; |
2633 | skb->ip_summed = CHECKSUM_HW; | 2633 | skb->ip_summed = CHECKSUM_COMPLETE; |
2634 | } | 2634 | } |
2635 | 2635 | ||
2636 | skb->protocol = eth_type_trans(skb, dev); | 2636 | skb->protocol = eth_type_trans(skb, dev); |
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c index c4c51f1418f5..7eeefa2d6c89 100644 --- a/drivers/net/sky2.c +++ b/drivers/net/sky2.c | |||
@@ -1184,7 +1184,7 @@ static unsigned tx_le_req(const struct sk_buff *skb) | |||
1184 | if (skb_is_gso(skb)) | 1184 | if (skb_is_gso(skb)) |
1185 | ++count; | 1185 | ++count; |
1186 | 1186 | ||
1187 | if (skb->ip_summed == CHECKSUM_HW) | 1187 | if (skb->ip_summed == CHECKSUM_PARTIAL) |
1188 | ++count; | 1188 | ++count; |
1189 | 1189 | ||
1190 | return count; | 1190 | return count; |
@@ -1284,7 +1284,7 @@ static int sky2_xmit_frame(struct sk_buff *skb, struct net_device *dev) | |||
1284 | #endif | 1284 | #endif |
1285 | 1285 | ||
1286 | /* Handle TCP checksum offload */ | 1286 | /* Handle TCP checksum offload */ |
1287 | if (skb->ip_summed == CHECKSUM_HW) { | 1287 | if (skb->ip_summed == CHECKSUM_PARTIAL) { |
1288 | unsigned offset = skb->h.raw - skb->data; | 1288 | unsigned offset = skb->h.raw - skb->data; |
1289 | u32 tcpsum; | 1289 | u32 tcpsum; |
1290 | 1290 | ||
@@ -1982,7 +1982,7 @@ static int sky2_status_intr(struct sky2_hw *hw, int to_do) | |||
1982 | #endif | 1982 | #endif |
1983 | case OP_RXCHKS: | 1983 | case OP_RXCHKS: |
1984 | skb = sky2->rx_ring[sky2->rx_next].skb; | 1984 | skb = sky2->rx_ring[sky2->rx_next].skb; |
1985 | skb->ip_summed = CHECKSUM_HW; | 1985 | skb->ip_summed = CHECKSUM_COMPLETE; |
1986 | skb->csum = status & 0xffff; | 1986 | skb->csum = status & 0xffff; |
1987 | break; | 1987 | break; |
1988 | 1988 | ||
diff --git a/drivers/net/starfire.c b/drivers/net/starfire.c index 337c3b7ac90e..3d617e8f54b5 100644 --- a/drivers/net/starfire.c +++ b/drivers/net/starfire.c | |||
@@ -1230,7 +1230,7 @@ static int start_tx(struct sk_buff *skb, struct net_device *dev) | |||
1230 | } | 1230 | } |
1231 | 1231 | ||
1232 | #if defined(ZEROCOPY) && defined(HAS_BROKEN_FIRMWARE) | 1232 | #if defined(ZEROCOPY) && defined(HAS_BROKEN_FIRMWARE) |
1233 | if (skb->ip_summed == CHECKSUM_HW) { | 1233 | if (skb->ip_summed == CHECKSUM_PARTIAL) { |
1234 | if (skb_padto(skb, (skb->len + PADDING_MASK) & ~PADDING_MASK)) | 1234 | if (skb_padto(skb, (skb->len + PADDING_MASK) & ~PADDING_MASK)) |
1235 | return NETDEV_TX_OK; | 1235 | return NETDEV_TX_OK; |
1236 | } | 1236 | } |
@@ -1252,7 +1252,7 @@ static int start_tx(struct sk_buff *skb, struct net_device *dev) | |||
1252 | status |= TxDescIntr; | 1252 | status |= TxDescIntr; |
1253 | np->reap_tx = 0; | 1253 | np->reap_tx = 0; |
1254 | } | 1254 | } |
1255 | if (skb->ip_summed == CHECKSUM_HW) { | 1255 | if (skb->ip_summed == CHECKSUM_PARTIAL) { |
1256 | status |= TxCalTCP; | 1256 | status |= TxCalTCP; |
1257 | np->stats.tx_compressed++; | 1257 | np->stats.tx_compressed++; |
1258 | } | 1258 | } |
@@ -1499,7 +1499,7 @@ static int __netdev_rx(struct net_device *dev, int *quota) | |||
1499 | * Until then, the printk stays. :-) -Ion | 1499 | * Until then, the printk stays. :-) -Ion |
1500 | */ | 1500 | */ |
1501 | else if (le16_to_cpu(desc->status2) & 0x0040) { | 1501 | else if (le16_to_cpu(desc->status2) & 0x0040) { |
1502 | skb->ip_summed = CHECKSUM_HW; | 1502 | skb->ip_summed = CHECKSUM_COMPLETE; |
1503 | skb->csum = le16_to_cpu(desc->csum); | 1503 | skb->csum = le16_to_cpu(desc->csum); |
1504 | printk(KERN_DEBUG "%s: checksum_hw, status2 = %#x\n", dev->name, le16_to_cpu(desc->status2)); | 1504 | printk(KERN_DEBUG "%s: checksum_hw, status2 = %#x\n", dev->name, le16_to_cpu(desc->status2)); |
1505 | } | 1505 | } |
diff --git a/drivers/net/sungem.c b/drivers/net/sungem.c index e06c59d4dd62..0975695ae31b 100644 --- a/drivers/net/sungem.c +++ b/drivers/net/sungem.c | |||
@@ -855,7 +855,7 @@ static int gem_rx(struct gem *gp, int work_to_do) | |||
855 | } | 855 | } |
856 | 856 | ||
857 | skb->csum = ntohs((status & RXDCTRL_TCPCSUM) ^ 0xffff); | 857 | skb->csum = ntohs((status & RXDCTRL_TCPCSUM) ^ 0xffff); |
858 | skb->ip_summed = CHECKSUM_HW; | 858 | skb->ip_summed = CHECKSUM_COMPLETE; |
859 | skb->protocol = eth_type_trans(skb, gp->dev); | 859 | skb->protocol = eth_type_trans(skb, gp->dev); |
860 | 860 | ||
861 | netif_receive_skb(skb); | 861 | netif_receive_skb(skb); |
@@ -1026,7 +1026,7 @@ static int gem_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
1026 | unsigned long flags; | 1026 | unsigned long flags; |
1027 | 1027 | ||
1028 | ctrl = 0; | 1028 | ctrl = 0; |
1029 | if (skb->ip_summed == CHECKSUM_HW) { | 1029 | if (skb->ip_summed == CHECKSUM_PARTIAL) { |
1030 | u64 csum_start_off, csum_stuff_off; | 1030 | u64 csum_start_off, csum_stuff_off; |
1031 | 1031 | ||
1032 | csum_start_off = (u64) (skb->h.raw - skb->data); | 1032 | csum_start_off = (u64) (skb->h.raw - skb->data); |
diff --git a/drivers/net/sunhme.c b/drivers/net/sunhme.c index 2ff0ded24000..f05eea53623b 100644 --- a/drivers/net/sunhme.c +++ b/drivers/net/sunhme.c | |||
@@ -1207,7 +1207,7 @@ static void happy_meal_transceiver_check(struct happy_meal *hp, void __iomem *tr | |||
1207 | * flags, thus: | 1207 | * flags, thus: |
1208 | * | 1208 | * |
1209 | * skb->csum = rxd->rx_flags & 0xffff; | 1209 | * skb->csum = rxd->rx_flags & 0xffff; |
1210 | * skb->ip_summed = CHECKSUM_HW; | 1210 | * skb->ip_summed = CHECKSUM_COMPLETE; |
1211 | * | 1211 | * |
1212 | * before sending off the skb to the protocols, and we are good as gold. | 1212 | * before sending off the skb to the protocols, and we are good as gold. |
1213 | */ | 1213 | */ |
@@ -2074,7 +2074,7 @@ static void happy_meal_rx(struct happy_meal *hp, struct net_device *dev) | |||
2074 | 2074 | ||
2075 | /* This card is _fucking_ hot... */ | 2075 | /* This card is _fucking_ hot... */ |
2076 | skb->csum = ntohs(csum ^ 0xffff); | 2076 | skb->csum = ntohs(csum ^ 0xffff); |
2077 | skb->ip_summed = CHECKSUM_HW; | 2077 | skb->ip_summed = CHECKSUM_COMPLETE; |
2078 | 2078 | ||
2079 | RXD(("len=%d csum=%4x]", len, csum)); | 2079 | RXD(("len=%d csum=%4x]", len, csum)); |
2080 | skb->protocol = eth_type_trans(skb, dev); | 2080 | skb->protocol = eth_type_trans(skb, dev); |
@@ -2268,7 +2268,7 @@ static int happy_meal_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
2268 | u32 tx_flags; | 2268 | u32 tx_flags; |
2269 | 2269 | ||
2270 | tx_flags = TXFLAG_OWN; | 2270 | tx_flags = TXFLAG_OWN; |
2271 | if (skb->ip_summed == CHECKSUM_HW) { | 2271 | if (skb->ip_summed == CHECKSUM_PARTIAL) { |
2272 | u32 csum_start_off, csum_stuff_off; | 2272 | u32 csum_start_off, csum_stuff_off; |
2273 | 2273 | ||
2274 | csum_start_off = (u32) (skb->h.raw - skb->data); | 2274 | csum_start_off = (u32) (skb->h.raw - skb->data); |
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c index 3b84ac234644..aaf45b907a78 100644 --- a/drivers/net/tg3.c +++ b/drivers/net/tg3.c | |||
@@ -149,122 +149,67 @@ module_param(tg3_debug, int, 0); | |||
149 | MODULE_PARM_DESC(tg3_debug, "Tigon3 bitmapped debugging message enable value"); | 149 | MODULE_PARM_DESC(tg3_debug, "Tigon3 bitmapped debugging message enable value"); |
150 | 150 | ||
151 | static struct pci_device_id tg3_pci_tbl[] = { | 151 | static struct pci_device_id tg3_pci_tbl[] = { |
152 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5700, | 152 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5700)}, |
153 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | 153 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5701)}, |
154 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5701, | 154 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5702)}, |
155 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | 155 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5703)}, |
156 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5702, | 156 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5704)}, |
157 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | 157 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5702FE)}, |
158 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5703, | 158 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5705)}, |
159 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | 159 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5705_2)}, |
160 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5704, | 160 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5705M)}, |
161 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | 161 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5705M_2)}, |
162 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5702FE, | 162 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5702X)}, |
163 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | 163 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5703X)}, |
164 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5705, | 164 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5704S)}, |
165 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | 165 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5702A3)}, |
166 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5705_2, | 166 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5703A3)}, |
167 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | 167 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5782)}, |
168 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5705M, | 168 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5788)}, |
169 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | 169 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5789)}, |
170 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5705M_2, | 170 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5901)}, |
171 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | 171 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5901_2)}, |
172 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5702X, | 172 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5704S_2)}, |
173 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | 173 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5705F)}, |
174 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5703X, | 174 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5720)}, |
175 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | 175 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5721)}, |
176 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5704S, | 176 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5750)}, |
177 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | 177 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5751)}, |
178 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5702A3, | 178 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5750M)}, |
179 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | 179 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5751M)}, |
180 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5703A3, | 180 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5751F)}, |
181 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | 181 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5752)}, |
182 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5782, | 182 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5752M)}, |
183 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | 183 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5753)}, |
184 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5788, | 184 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5753M)}, |
185 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | 185 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5753F)}, |
186 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5789, | 186 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5754)}, |
187 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | 187 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5754M)}, |
188 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5901, | 188 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5755)}, |
189 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | 189 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5755M)}, |
190 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5901_2, | 190 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5786)}, |
191 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | 191 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5787)}, |
192 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5704S_2, | 192 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5787M)}, |
193 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | 193 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5714)}, |
194 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5705F, | 194 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5714S)}, |
195 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | 195 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5715)}, |
196 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5720, | 196 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5715S)}, |
197 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | 197 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5780)}, |
198 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5721, | 198 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5780S)}, |
199 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | 199 | {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5781)}, |
200 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5750, | 200 | {PCI_DEVICE(PCI_VENDOR_ID_SYSKONNECT, PCI_DEVICE_ID_SYSKONNECT_9DXX)}, |
201 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | 201 | {PCI_DEVICE(PCI_VENDOR_ID_SYSKONNECT, PCI_DEVICE_ID_SYSKONNECT_9MXX)}, |
202 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5751, | 202 | {PCI_DEVICE(PCI_VENDOR_ID_ALTIMA, PCI_DEVICE_ID_ALTIMA_AC1000)}, |
203 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | 203 | {PCI_DEVICE(PCI_VENDOR_ID_ALTIMA, PCI_DEVICE_ID_ALTIMA_AC1001)}, |
204 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5750M, | 204 | {PCI_DEVICE(PCI_VENDOR_ID_ALTIMA, PCI_DEVICE_ID_ALTIMA_AC1003)}, |
205 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | 205 | {PCI_DEVICE(PCI_VENDOR_ID_ALTIMA, PCI_DEVICE_ID_ALTIMA_AC9100)}, |
206 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5751M, | 206 | {PCI_DEVICE(PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_TIGON3)}, |
207 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | 207 | {} |
208 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5751F, | ||
209 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | ||
210 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5752, | ||
211 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | ||
212 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5752M, | ||
213 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | ||
214 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5753, | ||
215 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | ||
216 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5753M, | ||
217 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | ||
218 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5753F, | ||
219 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | ||
220 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5754, | ||
221 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | ||
222 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5754M, | ||
223 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | ||
224 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5755, | ||
225 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | ||
226 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5755M, | ||
227 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | ||
228 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5786, | ||
229 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | ||
230 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5787, | ||
231 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | ||
232 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5787M, | ||
233 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | ||
234 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5714, | ||
235 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | ||
236 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5714S, | ||
237 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | ||
238 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5715, | ||
239 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | ||
240 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5715S, | ||
241 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | ||
242 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5780, | ||
243 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | ||
244 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5780S, | ||
245 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | ||
246 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5781, | ||
247 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | ||
248 | { PCI_VENDOR_ID_SYSKONNECT, PCI_DEVICE_ID_SYSKONNECT_9DXX, | ||
249 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | ||
250 | { PCI_VENDOR_ID_SYSKONNECT, PCI_DEVICE_ID_SYSKONNECT_9MXX, | ||
251 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | ||
252 | { PCI_VENDOR_ID_ALTIMA, PCI_DEVICE_ID_ALTIMA_AC1000, | ||
253 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | ||
254 | { PCI_VENDOR_ID_ALTIMA, PCI_DEVICE_ID_ALTIMA_AC1001, | ||
255 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | ||
256 | { PCI_VENDOR_ID_ALTIMA, PCI_DEVICE_ID_ALTIMA_AC1003, | ||
257 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | ||
258 | { PCI_VENDOR_ID_ALTIMA, PCI_DEVICE_ID_ALTIMA_AC9100, | ||
259 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | ||
260 | { PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_TIGON3, | ||
261 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, | ||
262 | { 0, } | ||
263 | }; | 208 | }; |
264 | 209 | ||
265 | MODULE_DEVICE_TABLE(pci, tg3_pci_tbl); | 210 | MODULE_DEVICE_TABLE(pci, tg3_pci_tbl); |
266 | 211 | ||
267 | static struct { | 212 | static const struct { |
268 | const char string[ETH_GSTRING_LEN]; | 213 | const char string[ETH_GSTRING_LEN]; |
269 | } ethtool_stats_keys[TG3_NUM_STATS] = { | 214 | } ethtool_stats_keys[TG3_NUM_STATS] = { |
270 | { "rx_octets" }, | 215 | { "rx_octets" }, |
@@ -345,7 +290,7 @@ static struct { | |||
345 | { "nic_tx_threshold_hit" } | 290 | { "nic_tx_threshold_hit" } |
346 | }; | 291 | }; |
347 | 292 | ||
348 | static struct { | 293 | static const struct { |
349 | const char string[ETH_GSTRING_LEN]; | 294 | const char string[ETH_GSTRING_LEN]; |
350 | } ethtool_test_keys[TG3_NUM_TEST] = { | 295 | } ethtool_test_keys[TG3_NUM_TEST] = { |
351 | { "nvram test (online) " }, | 296 | { "nvram test (online) " }, |
@@ -3851,11 +3796,11 @@ static int tg3_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
3851 | skb->h.th->check = 0; | 3796 | skb->h.th->check = 0; |
3852 | 3797 | ||
3853 | } | 3798 | } |
3854 | else if (skb->ip_summed == CHECKSUM_HW) | 3799 | else if (skb->ip_summed == CHECKSUM_PARTIAL) |
3855 | base_flags |= TXD_FLAG_TCPUDP_CSUM; | 3800 | base_flags |= TXD_FLAG_TCPUDP_CSUM; |
3856 | #else | 3801 | #else |
3857 | mss = 0; | 3802 | mss = 0; |
3858 | if (skb->ip_summed == CHECKSUM_HW) | 3803 | if (skb->ip_summed == CHECKSUM_PARTIAL) |
3859 | base_flags |= TXD_FLAG_TCPUDP_CSUM; | 3804 | base_flags |= TXD_FLAG_TCPUDP_CSUM; |
3860 | #endif | 3805 | #endif |
3861 | #if TG3_VLAN_TAG_USED | 3806 | #if TG3_VLAN_TAG_USED |
@@ -3981,7 +3926,7 @@ static int tg3_start_xmit_dma_bug(struct sk_buff *skb, struct net_device *dev) | |||
3981 | 3926 | ||
3982 | entry = tp->tx_prod; | 3927 | entry = tp->tx_prod; |
3983 | base_flags = 0; | 3928 | base_flags = 0; |
3984 | if (skb->ip_summed == CHECKSUM_HW) | 3929 | if (skb->ip_summed == CHECKSUM_PARTIAL) |
3985 | base_flags |= TXD_FLAG_TCPUDP_CSUM; | 3930 | base_flags |= TXD_FLAG_TCPUDP_CSUM; |
3986 | #if TG3_TSO_SUPPORT != 0 | 3931 | #if TG3_TSO_SUPPORT != 0 |
3987 | mss = 0; | 3932 | mss = 0; |
@@ -4969,7 +4914,7 @@ static int tg3_halt(struct tg3 *tp, int kind, int silent) | |||
4969 | #define TG3_FW_BSS_ADDR 0x08000a70 | 4914 | #define TG3_FW_BSS_ADDR 0x08000a70 |
4970 | #define TG3_FW_BSS_LEN 0x10 | 4915 | #define TG3_FW_BSS_LEN 0x10 |
4971 | 4916 | ||
4972 | static u32 tg3FwText[(TG3_FW_TEXT_LEN / sizeof(u32)) + 1] = { | 4917 | static const u32 tg3FwText[(TG3_FW_TEXT_LEN / sizeof(u32)) + 1] = { |
4973 | 0x00000000, 0x10000003, 0x00000000, 0x0000000d, 0x0000000d, 0x3c1d0800, | 4918 | 0x00000000, 0x10000003, 0x00000000, 0x0000000d, 0x0000000d, 0x3c1d0800, |
4974 | 0x37bd3ffc, 0x03a0f021, 0x3c100800, 0x26100000, 0x0e000018, 0x00000000, | 4919 | 0x37bd3ffc, 0x03a0f021, 0x3c100800, 0x26100000, 0x0e000018, 0x00000000, |
4975 | 0x0000000d, 0x3c1d0800, 0x37bd3ffc, 0x03a0f021, 0x3c100800, 0x26100034, | 4920 | 0x0000000d, 0x3c1d0800, 0x37bd3ffc, 0x03a0f021, 0x3c100800, 0x26100034, |
@@ -5063,7 +5008,7 @@ static u32 tg3FwText[(TG3_FW_TEXT_LEN / sizeof(u32)) + 1] = { | |||
5063 | 0x27bd0008, 0x03e00008, 0x00000000, 0x00000000, 0x00000000 | 5008 | 0x27bd0008, 0x03e00008, 0x00000000, 0x00000000, 0x00000000 |
5064 | }; | 5009 | }; |
5065 | 5010 | ||
5066 | static u32 tg3FwRodata[(TG3_FW_RODATA_LEN / sizeof(u32)) + 1] = { | 5011 | static const u32 tg3FwRodata[(TG3_FW_RODATA_LEN / sizeof(u32)) + 1] = { |
5067 | 0x35373031, 0x726c7341, 0x00000000, 0x00000000, 0x53774576, 0x656e7430, | 5012 | 0x35373031, 0x726c7341, 0x00000000, 0x00000000, 0x53774576, 0x656e7430, |
5068 | 0x00000000, 0x726c7045, 0x76656e74, 0x31000000, 0x556e6b6e, 0x45766e74, | 5013 | 0x00000000, 0x726c7045, 0x76656e74, 0x31000000, 0x556e6b6e, 0x45766e74, |
5069 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x66617461, 0x6c457272, | 5014 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x66617461, 0x6c457272, |
@@ -5128,13 +5073,13 @@ static int tg3_halt_cpu(struct tg3 *tp, u32 offset) | |||
5128 | struct fw_info { | 5073 | struct fw_info { |
5129 | unsigned int text_base; | 5074 | unsigned int text_base; |
5130 | unsigned int text_len; | 5075 | unsigned int text_len; |
5131 | u32 *text_data; | 5076 | const u32 *text_data; |
5132 | unsigned int rodata_base; | 5077 | unsigned int rodata_base; |
5133 | unsigned int rodata_len; | 5078 | unsigned int rodata_len; |
5134 | u32 *rodata_data; | 5079 | const u32 *rodata_data; |
5135 | unsigned int data_base; | 5080 | unsigned int data_base; |
5136 | unsigned int data_len; | 5081 | unsigned int data_len; |
5137 | u32 *data_data; | 5082 | const u32 *data_data; |
5138 | }; | 5083 | }; |
5139 | 5084 | ||
5140 | /* tp->lock is held. */ | 5085 | /* tp->lock is held. */ |
@@ -5266,7 +5211,7 @@ static int tg3_load_5701_a0_firmware_fix(struct tg3 *tp) | |||
5266 | #define TG3_TSO_FW_BSS_ADDR 0x08001b80 | 5211 | #define TG3_TSO_FW_BSS_ADDR 0x08001b80 |
5267 | #define TG3_TSO_FW_BSS_LEN 0x894 | 5212 | #define TG3_TSO_FW_BSS_LEN 0x894 |
5268 | 5213 | ||
5269 | static u32 tg3TsoFwText[(TG3_TSO_FW_TEXT_LEN / 4) + 1] = { | 5214 | static const u32 tg3TsoFwText[(TG3_TSO_FW_TEXT_LEN / 4) + 1] = { |
5270 | 0x0e000003, 0x00000000, 0x08001b24, 0x00000000, 0x10000003, 0x00000000, | 5215 | 0x0e000003, 0x00000000, 0x08001b24, 0x00000000, 0x10000003, 0x00000000, |
5271 | 0x0000000d, 0x0000000d, 0x3c1d0800, 0x37bd4000, 0x03a0f021, 0x3c100800, | 5216 | 0x0000000d, 0x0000000d, 0x3c1d0800, 0x37bd4000, 0x03a0f021, 0x3c100800, |
5272 | 0x26100000, 0x0e000010, 0x00000000, 0x0000000d, 0x27bdffe0, 0x3c04fefe, | 5217 | 0x26100000, 0x0e000010, 0x00000000, 0x0000000d, 0x27bdffe0, 0x3c04fefe, |
@@ -5553,7 +5498,7 @@ static u32 tg3TsoFwText[(TG3_TSO_FW_TEXT_LEN / 4) + 1] = { | |||
5553 | 0xac470014, 0xac4a0018, 0x03e00008, 0xac4b001c, 0x00000000, 0x00000000, | 5498 | 0xac470014, 0xac4a0018, 0x03e00008, 0xac4b001c, 0x00000000, 0x00000000, |
5554 | }; | 5499 | }; |
5555 | 5500 | ||
5556 | static u32 tg3TsoFwRodata[] = { | 5501 | static const u32 tg3TsoFwRodata[] = { |
5557 | 0x4d61696e, 0x43707542, 0x00000000, 0x4d61696e, 0x43707541, 0x00000000, | 5502 | 0x4d61696e, 0x43707542, 0x00000000, 0x4d61696e, 0x43707541, 0x00000000, |
5558 | 0x00000000, 0x00000000, 0x73746b6f, 0x66666c64, 0x496e0000, 0x73746b6f, | 5503 | 0x00000000, 0x00000000, 0x73746b6f, 0x66666c64, 0x496e0000, 0x73746b6f, |
5559 | 0x66662a2a, 0x00000000, 0x53774576, 0x656e7430, 0x00000000, 0x00000000, | 5504 | 0x66662a2a, 0x00000000, 0x53774576, 0x656e7430, 0x00000000, 0x00000000, |
@@ -5561,7 +5506,7 @@ static u32 tg3TsoFwRodata[] = { | |||
5561 | 0x00000000, | 5506 | 0x00000000, |
5562 | }; | 5507 | }; |
5563 | 5508 | ||
5564 | static u32 tg3TsoFwData[] = { | 5509 | static const u32 tg3TsoFwData[] = { |
5565 | 0x00000000, 0x73746b6f, 0x66666c64, 0x5f76312e, 0x362e3000, 0x00000000, | 5510 | 0x00000000, 0x73746b6f, 0x66666c64, 0x5f76312e, 0x362e3000, 0x00000000, |
5566 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, | 5511 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
5567 | 0x00000000, | 5512 | 0x00000000, |
@@ -5583,7 +5528,7 @@ static u32 tg3TsoFwData[] = { | |||
5583 | #define TG3_TSO5_FW_BSS_ADDR 0x00010f50 | 5528 | #define TG3_TSO5_FW_BSS_ADDR 0x00010f50 |
5584 | #define TG3_TSO5_FW_BSS_LEN 0x88 | 5529 | #define TG3_TSO5_FW_BSS_LEN 0x88 |
5585 | 5530 | ||
5586 | static u32 tg3Tso5FwText[(TG3_TSO5_FW_TEXT_LEN / 4) + 1] = { | 5531 | static const u32 tg3Tso5FwText[(TG3_TSO5_FW_TEXT_LEN / 4) + 1] = { |
5587 | 0x0c004003, 0x00000000, 0x00010f04, 0x00000000, 0x10000003, 0x00000000, | 5532 | 0x0c004003, 0x00000000, 0x00010f04, 0x00000000, 0x10000003, 0x00000000, |
5588 | 0x0000000d, 0x0000000d, 0x3c1d0001, 0x37bde000, 0x03a0f021, 0x3c100001, | 5533 | 0x0000000d, 0x0000000d, 0x3c1d0001, 0x37bde000, 0x03a0f021, 0x3c100001, |
5589 | 0x26100000, 0x0c004010, 0x00000000, 0x0000000d, 0x27bdffe0, 0x3c04fefe, | 5534 | 0x26100000, 0x0c004010, 0x00000000, 0x0000000d, 0x27bdffe0, 0x3c04fefe, |
@@ -5742,14 +5687,14 @@ static u32 tg3Tso5FwText[(TG3_TSO5_FW_TEXT_LEN / 4) + 1] = { | |||
5742 | 0x00000000, 0x00000000, 0x00000000, | 5687 | 0x00000000, 0x00000000, 0x00000000, |
5743 | }; | 5688 | }; |
5744 | 5689 | ||
5745 | static u32 tg3Tso5FwRodata[(TG3_TSO5_FW_RODATA_LEN / 4) + 1] = { | 5690 | static const u32 tg3Tso5FwRodata[(TG3_TSO5_FW_RODATA_LEN / 4) + 1] = { |
5746 | 0x4d61696e, 0x43707542, 0x00000000, 0x4d61696e, 0x43707541, 0x00000000, | 5691 | 0x4d61696e, 0x43707542, 0x00000000, 0x4d61696e, 0x43707541, 0x00000000, |
5747 | 0x00000000, 0x00000000, 0x73746b6f, 0x66666c64, 0x00000000, 0x00000000, | 5692 | 0x00000000, 0x00000000, 0x73746b6f, 0x66666c64, 0x00000000, 0x00000000, |
5748 | 0x73746b6f, 0x66666c64, 0x00000000, 0x00000000, 0x66617461, 0x6c457272, | 5693 | 0x73746b6f, 0x66666c64, 0x00000000, 0x00000000, 0x66617461, 0x6c457272, |
5749 | 0x00000000, 0x00000000, 0x00000000, | 5694 | 0x00000000, 0x00000000, 0x00000000, |
5750 | }; | 5695 | }; |
5751 | 5696 | ||
5752 | static u32 tg3Tso5FwData[(TG3_TSO5_FW_DATA_LEN / 4) + 1] = { | 5697 | static const u32 tg3Tso5FwData[(TG3_TSO5_FW_DATA_LEN / 4) + 1] = { |
5753 | 0x00000000, 0x73746b6f, 0x66666c64, 0x5f76312e, 0x322e3000, 0x00000000, | 5698 | 0x00000000, 0x73746b6f, 0x66666c64, 0x5f76312e, 0x322e3000, 0x00000000, |
5754 | 0x00000000, 0x00000000, 0x00000000, | 5699 | 0x00000000, 0x00000000, 0x00000000, |
5755 | }; | 5700 | }; |
diff --git a/drivers/net/typhoon.c b/drivers/net/typhoon.c index 2fb4f978ed54..8f6f6fd8b87d 100644 --- a/drivers/net/typhoon.c +++ b/drivers/net/typhoon.c | |||
@@ -830,7 +830,7 @@ typhoon_start_tx(struct sk_buff *skb, struct net_device *dev) | |||
830 | first_txd->addrHi = (u64)((unsigned long) skb) >> 32; | 830 | first_txd->addrHi = (u64)((unsigned long) skb) >> 32; |
831 | first_txd->processFlags = 0; | 831 | first_txd->processFlags = 0; |
832 | 832 | ||
833 | if(skb->ip_summed == CHECKSUM_HW) { | 833 | if(skb->ip_summed == CHECKSUM_PARTIAL) { |
834 | /* The 3XP will figure out if this is UDP/TCP */ | 834 | /* The 3XP will figure out if this is UDP/TCP */ |
835 | first_txd->processFlags |= TYPHOON_TX_PF_TCP_CHKSUM; | 835 | first_txd->processFlags |= TYPHOON_TX_PF_TCP_CHKSUM; |
836 | first_txd->processFlags |= TYPHOON_TX_PF_UDP_CHKSUM; | 836 | first_txd->processFlags |= TYPHOON_TX_PF_UDP_CHKSUM; |
diff --git a/drivers/net/via-rhine.c b/drivers/net/via-rhine.c index acd0a91a09c3..cbebf1b96e9d 100644 --- a/drivers/net/via-rhine.c +++ b/drivers/net/via-rhine.c | |||
@@ -1230,7 +1230,7 @@ static int rhine_start_tx(struct sk_buff *skb, struct net_device *dev) | |||
1230 | rp->tx_skbuff[entry] = skb; | 1230 | rp->tx_skbuff[entry] = skb; |
1231 | 1231 | ||
1232 | if ((rp->quirks & rqRhineI) && | 1232 | if ((rp->quirks & rqRhineI) && |
1233 | (((unsigned long)skb->data & 3) || skb_shinfo(skb)->nr_frags != 0 || skb->ip_summed == CHECKSUM_HW)) { | 1233 | (((unsigned long)skb->data & 3) || skb_shinfo(skb)->nr_frags != 0 || skb->ip_summed == CHECKSUM_PARTIAL)) { |
1234 | /* Must use alignment buffer. */ | 1234 | /* Must use alignment buffer. */ |
1235 | if (skb->len > PKT_BUF_SZ) { | 1235 | if (skb->len > PKT_BUF_SZ) { |
1236 | /* packet too long, drop it */ | 1236 | /* packet too long, drop it */ |
diff --git a/drivers/net/via-velocity.c b/drivers/net/via-velocity.c index dd472b64e5a2..7d8808ce541f 100644 --- a/drivers/net/via-velocity.c +++ b/drivers/net/via-velocity.c | |||
@@ -2002,7 +2002,7 @@ static int velocity_xmit(struct sk_buff *skb, struct net_device *dev) | |||
2002 | * Handle hardware checksum | 2002 | * Handle hardware checksum |
2003 | */ | 2003 | */ |
2004 | if ((vptr->flags & VELOCITY_FLAGS_TX_CSUM) | 2004 | if ((vptr->flags & VELOCITY_FLAGS_TX_CSUM) |
2005 | && (skb->ip_summed == CHECKSUM_HW)) { | 2005 | && (skb->ip_summed == CHECKSUM_PARTIAL)) { |
2006 | struct iphdr *ip = skb->nh.iph; | 2006 | struct iphdr *ip = skb->nh.iph; |
2007 | if (ip->protocol == IPPROTO_TCP) | 2007 | if (ip->protocol == IPPROTO_TCP) |
2008 | td_ptr->tdesc1.TCR |= TCR0_TCPCK; | 2008 | td_ptr->tdesc1.TCR |= TCR0_TCPCK; |