aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/e1000/e1000_main.c
diff options
context:
space:
mode:
authorBruce Allan <bruce.w.allan@intel.com>2007-01-18 12:25:28 -0500
committerJeff Garzik <jeff@garzik.org>2007-02-05 16:58:41 -0500
commitf6c57bafcdebed4429cdda206149ddcbb1d46e91 (patch)
tree33e281205ab6eb6dfdb1bb27fe724cc32dc2e62e /drivers/net/e1000/e1000_main.c
parent9669f53b98974ede4728e288316296666722ab8c (diff)
e1000: clear ip csum info from context descriptor
Since the driver sets the IP checksum insertion bit (IXSM in Status field) in transmit context descriptors, it should clear the IP checksum bits of any garbage so as not to confuse the hardware. Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Diffstat (limited to 'drivers/net/e1000/e1000_main.c')
-rw-r--r--drivers/net/e1000/e1000_main.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index 43dde2733ec0..8c6c74d1284a 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -2975,8 +2975,9 @@ e1000_tx_csum(struct e1000_adapter *adapter, struct e1000_tx_ring *tx_ring,
2975 buffer_info = &tx_ring->buffer_info[i]; 2975 buffer_info = &tx_ring->buffer_info[i];
2976 context_desc = E1000_CONTEXT_DESC(*tx_ring, i); 2976 context_desc = E1000_CONTEXT_DESC(*tx_ring, i);
2977 2977
2978 context_desc->lower_setup.ip_config = 0;
2978 context_desc->upper_setup.tcp_fields.tucss = css; 2979 context_desc->upper_setup.tcp_fields.tucss = css;
2979 context_desc->upper_setup.tcp_fields.tucso = css + skb->csum_offset; 2980 context_desc->upper_setup.tcp_fields.tucso = css + skb->csum;
2980 context_desc->upper_setup.tcp_fields.tucse = 0; 2981 context_desc->upper_setup.tcp_fields.tucse = 0;
2981 context_desc->tcp_seg_setup.data = 0; 2982 context_desc->tcp_seg_setup.data = 0;
2982 context_desc->cmd_and_length = cpu_to_le32(E1000_TXD_CMD_DEXT); 2983 context_desc->cmd_and_length = cpu_to_le32(E1000_TXD_CMD_DEXT);