From: Linus Torvalds Date: Sun, 24 Sep 2006 17:15:13 +0000 (-0700) Subject: Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik... X-Git-Tag: v2.6.19-rc1~1263 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a319a2773a13bab56a0d0b3744ba8703324313b5;p=linux-2.6 Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 * 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6: (217 commits) net/ieee80211: fix more crypto-related build breakage [PATCH] Spidernet: add ethtool -S (show statistics) [NET] GT96100: Delete bitrotting ethernet driver [PATCH] mv643xx_eth: restrict to 32-bit PPC_MULTIPLATFORM [PATCH] Cirrus Logic ep93xx ethernet driver r8169: the MMIO region of the 8167 stands behin BAR#1 e1000, ixgb: Remove pointless wrappers [PATCH] Remove powerpc specific parts of 3c509 driver [PATCH] s2io: Switch to pci_get_device [PATCH] gt96100: move to pci_get_device API [PATCH] ehea: bugfix for register access functions [PATCH] e1000 disable device on PCI error drivers/net/phy/fixed: #if 0 some incomplete code drivers/net: const-ify ethtool_ops declarations [PATCH] ethtool: allow const ethtool_ops [PATCH] sky2: big endian [PATCH] sky2: fiber support [PATCH] sky2: tx pause bug fix drivers/net: Trim trailing whitespace [PATCH] ehea: IBM eHEA Ethernet Device Driver ... Manually resolved conflicts in drivers/net/ixgb/ixgb_main.c and drivers/net/sky2.c related to CHECKSUM_HW/CHECKSUM_PARTIAL changes by commit 84fa7933a33f806bbbaae6775e87459b1ec584c0 that just happened to be next to unrelated changes in this update. --- a319a2773a13bab56a0d0b3744ba8703324313b5 diff --cc drivers/net/hamachi.c index 763373ae96,b59bab9e97..5c89ae78a5 --- a/drivers/net/hamachi.c +++ b/drivers/net/hamachi.c @@@ -1648,9 -1648,9 +1648,9 @@@ static int hamachi_rx(struct net_devic * could do the pseudo myself and return * CHECKSUM_UNNECESSARY */ - skb->ip_summed = CHECKSUM_HW; + skb->ip_summed = CHECKSUM_COMPLETE; } - } + } } #endif /* RX_CHECKSUM */ diff --cc drivers/net/ixgb/ixgb_main.c index 9405b44f32,e36dee1dd3..2e0f4b950a --- a/drivers/net/ixgb/ixgb_main.c +++ b/drivers/net/ixgb/ixgb_main.c @@@ -1232,7 -1246,8 +1246,8 @@@ ixgb_tx_csum(struct ixgb_adapter *adapt unsigned int i; uint8_t css, cso; - if(likely(skb->ip_summed == CHECKSUM_HW)) { + if(likely(skb->ip_summed == CHECKSUM_PARTIAL)) { + struct ixgb_buffer *buffer_info; css = skb->h.raw - skb->data; cso = (skb->h.raw + skb->csum) - skb->data; diff --cc drivers/net/skge.c index b3d6fa3d6d,4b267b85ff..9142d91355 --- a/drivers/net/skge.c +++ b/drivers/net/skge.c @@@ -2639,13 -2628,12 +2628,12 @@@ static struct sk_buff *skge_rx_get(stru } skb_put(skb, len); - skb->dev = skge->netdev; if (skge->rx_csum) { skb->csum = csum; - skb->ip_summed = CHECKSUM_HW; + skb->ip_summed = CHECKSUM_COMPLETE; } - skb->protocol = eth_type_trans(skb, skge->netdev); + skb->protocol = eth_type_trans(skb, dev); return skb; error: diff --cc drivers/net/sky2.c index 8e92566b58,c4c51f1418..7eeefa2d6c --- a/drivers/net/sky2.c +++ b/drivers/net/sky2.c @@@ -1272,9 -1284,12 +1284,12 @@@ static int sky2_xmit_frame(struct sk_bu #endif /* Handle TCP checksum offload */ - if (skb->ip_summed == CHECKSUM_HW) { + if (skb->ip_summed == CHECKSUM_PARTIAL) { - u16 hdr = skb->h.raw - skb->data; - u16 offset = hdr + skb->csum; + unsigned offset = skb->h.raw - skb->data; + u32 tcpsum; + + tcpsum = offset << 16; /* sum start */ + tcpsum |= offset + skb->csum; /* sum write */ ctrl = CALSUM | WR_SUM | INIT_SUM | LOCK_SUM; if (skb->nh.iph->protocol == IPPROTO_UDP) @@@ -2000,8 -1982,8 +1982,8 @@@ static int sky2_status_intr(struct sky2 #endif case OP_RXCHKS: skb = sky2->rx_ring[sky2->rx_next].skb; - skb->ip_summed = CHECKSUM_HW; + skb->ip_summed = CHECKSUM_COMPLETE; - skb->csum = le16_to_cpu(status); + skb->csum = status & 0xffff; break; case OP_TXINDEXLE: