aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2007-04-23 20:06:40 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-04-26 01:28:41 -0400
commit628592ccdbbb5bb751217cf02e2e7abb500d7ffe (patch)
treea81d6b2e87893851d36ffaa87c8f8757f4e13794
parent663ead3bb8d5b561e70fc3bb3861c9220b5a77eb (diff)
[NETDRV]: Perform missing csum_offset conversions
When csum_offset was introduced we did a conversion from csum to csum_offset where applicable. A couple of drivers were missed in this process. It was harmless to begin with since the two fields coincided. Now that we've made them different with the addition of csum_start, the missed drivers must be converted or they can't send packets out at all that require checksum offload. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/atl1/atl1_main.c2
-rw-r--r--drivers/net/e1000/e1000_main.c3
2 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/atl1/atl1_main.c b/drivers/net/atl1/atl1_main.c
index d60c2217332c..4b1d4d153ecf 100644
--- a/drivers/net/atl1/atl1_main.c
+++ b/drivers/net/atl1/atl1_main.c
@@ -1328,7 +1328,7 @@ static int atl1_tx_csum(struct atl1_adapter *adapter, struct sk_buff *skb,
1328 1328
1329 if (likely(skb->ip_summed == CHECKSUM_PARTIAL)) { 1329 if (likely(skb->ip_summed == CHECKSUM_PARTIAL)) {
1330 cso = skb_transport_offset(skb); 1330 cso = skb_transport_offset(skb);
1331 css = cso + skb->csum; 1331 css = cso + skb->csum_offset;
1332 if (unlikely(cso & 0x1)) { 1332 if (unlikely(cso & 0x1)) {
1333 printk(KERN_DEBUG "%s: payload offset != even number\n", 1333 printk(KERN_DEBUG "%s: payload offset != even number\n",
1334 atl1_driver_name); 1334 atl1_driver_name);
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index 610216ec4918..48e2ade704d3 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -2959,7 +2959,8 @@ e1000_tx_csum(struct e1000_adapter *adapter, struct e1000_tx_ring *tx_ring,
2959 2959
2960 context_desc->lower_setup.ip_config = 0; 2960 context_desc->lower_setup.ip_config = 0;
2961 context_desc->upper_setup.tcp_fields.tucss = css; 2961 context_desc->upper_setup.tcp_fields.tucss = css;
2962 context_desc->upper_setup.tcp_fields.tucso = css + skb->csum; 2962 context_desc->upper_setup.tcp_fields.tucso =
2963 css + skb->csum_offset;
2963 context_desc->upper_setup.tcp_fields.tucse = 0; 2964 context_desc->upper_setup.tcp_fields.tucse = 0;
2964 context_desc->tcp_seg_setup.data = 0; 2965 context_desc->tcp_seg_setup.data = 0;
2965 context_desc->cmd_and_length = cpu_to_le32(E1000_TXD_CMD_DEXT); 2966 context_desc->cmd_and_length = cpu_to_le32(E1000_TXD_CMD_DEXT);