Committed. Revision: 2651 Author: stansmith Date: 10:51:23 AM, Tuesday, January 05, 2010 Message:[IPoIB_NDIS6_CM] - DHCP not working. Fix the wrong length calculation of first MDL within Net Buffer object. The actual length of first MDL should be decremented by it's offset.
signed-off by: Alexander Naslednikov (xalex at mellanox.co.il) ---- Modified : /gen1/branches/WOF2-2/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp Modified : /gen1/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp ________________________________ From: Alex Naslednikov Sent: Sunday, December 27, 2009 3:27 PM To: [email protected] Subject: [ofw] [Patch] [IPoIB_NDIS6_CM] Fixing DHCP problem This patch fixes the wrong length calculation of first MDL within Net Buffer object. The actual length of first MDL should be incremented by it's offset signed-off by: Alexander Naslednikov (xalex at mellanox.co.il) Index: kernel/ipoib_port.cpp =================================================================== --- kernel/ipoib_port.cpp (revision 5387) +++ kernel/ipoib_port.cpp (working copy) @@ -3504,6 +3504,9 @@ return NDIS_STATUS_FAILURE; } + ULONG MdlDataOffset = NET_BUFFER_CURRENT_MDL_OFFSET(p_net_buffer); + *p_mdl_len -= MdlDataOffset; + if( *p_mdl_len < sizeof(eth_hdr_t) ) { IPOIB_PRINT_EXIT( TRACE_LEVEL_ERROR, IPOIB_DBG_ERROR, @@ -3512,7 +3515,8 @@ return NDIS_STATUS_BUFFER_TOO_SHORT; } - *pp_eth_hdr = (eth_hdr_t*)(p_head + NET_BUFFER_CURRENT_MDL_OFFSET(p_net_buffer)); + *pp_eth_hdr = (eth_hdr_t*)(p_head + MdlDataOffset); + IPOIB_PRINT_EXIT( TRACE_LEVEL_INFORMATION, IPOIB_DBG_SEND, ("Ethernet header:\n"
_______________________________________________ ofw mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw
