default:\r
CL_ASSERT( FALSE );\r
case CSUM_DISABLED:\r
+ case CSUM_ENABLED:\r
NDIS_PER_PACKET_INFO_FROM_PACKET( p_packet, TcpIpChecksumPacketInfo ) =\r
(void*)(uintn_t)chksum.Value;\r
break;\r
- case CSUM_ENABLED:\r
- /* Get the checksums directly from packet information. */\r
- /* In this case, no one of cheksum's cat get false value */\r
- /* If hardware checksum failed or wasn't calculated, NDIS will recalculate it again */\r
- NDIS_PER_PACKET_INFO_FROM_PACKET( p_packet, TcpIpChecksumPacketInfo ) = \r
- (void*)(uintn_t)(p_desc->ndis_csum.Value);\r
- break;\r
case CSUM_BYPASS:\r
/* Flag the checksums as having been calculated. */\r
chksum.Receive.NdisPacketTcpChecksumSucceeded = TRUE;\r
NdisWriteErrorLogEntry( p_port->p_adapter->h_adapter,\r
EVENT_IPOIB_CONNECTED_MODE_ERR, 1, 0xbadc0de2 );\r
}\r
+ else \r
+ {\r
+ if ( p_port->p_adapter->params.send_chksum_offload )\r
+ p_port->p_adapter->params.send_chksum_offload = CSUM_DISABLED;\r
+ }\r
}\r
IPOIB_EXIT( IPOIB_DBG_INIT );\r
return IB_SUCCESS;\r