diff options
author | Bruce Allan <bruce.w.allan@intel.com> | 2007-01-18 12:25:28 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-02-05 16:58:41 -0500 |
commit | f6c57bafcdebed4429cdda206149ddcbb1d46e91 (patch) | |
tree | 33e281205ab6eb6dfdb1bb27fe724cc32dc2e62e /drivers/net/e1000/e1000_main.c | |
parent | 9669f53b98974ede4728e288316296666722ab8c (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.c | 3 |
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); |