Applied on 3056. Thanks Tzachi
From: [email protected] [mailto:[email protected]] On Behalf Of Tzachi Dar Sent: Sunday, December 26, 2010 5:55 PM To: [email protected] Subject: [ofw] FW: It seems that there are several places where the function __send_mgr_filter_udp is returning pending Below is the formal patch to the place where the code seems to be very confusing (no functionality change). Index: B:/users/tzachid/projinf6/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp =================================================================== --- B:/users/tzachid/projinf6/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp (revision 7084) +++ B:/users/tzachid/projinf6/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp (working copy) @@ -4596,16 +4596,15 @@ status = __send_mgr_filter_udp( p_ip_hdr, p_mdl, (buf_len - hdr_size), p_eth_hdr->type, s_buf ); cl_perf_stop( &p_port->p_adapter->perf, FilterUdp ); - if( status == NDIS_STATUS_PENDING ) - { /* not DHCP packet, keep going */ - if( ETH_IS_MULTICAST( p_eth_hdr->dst.addr ) ) - p_desc->send_dir = SEND_UD_QP; - else - p_desc->send_dir = SEND_RC_QP; - break; + if( status != NDIS_STATUS_PENDING ) { + return status; } - return status; - + /* not DHCP packet, keep going */ + if( ETH_IS_MULTICAST( p_eth_hdr->dst.addr ) ) + p_desc->send_dir = SEND_UD_QP; + else + p_desc->send_dir = SEND_RC_QP; + break; case IP_PROT_TCP: p_desc->send_dir = SEND_RC_QP; break; From: Alex Naslednikov Sent: Sunday, December 26, 2010 9:20 AM To: Tzachi Dar; Galina Tcharny; Uri Habusha Cc: Gilad Margalit Subject: RE: It seems that there are several places where the function __send_mgr_filter_udp is returning pending I agree. Can you send it to the community, please ? From: Tzachi Dar Sent: Thursday, December 23, 2010 12:38 PM To: Tzachi Dar; Alex Naslednikov; Galina Tcharny; Uri Habusha Cc: Gilad Margalit Subject: RE: It seems that there are several places where the function __send_mgr_filter_udp is returning pending OK, my mistake. The following code got me confused. if( status == NDIS_STATUS_PENDING ) { /* not DHCP packet, keep going */ if( ETH_IS_MULTICAST( p_eth_hdr->dst.addr ) ) p_desc->send_dir = SEND_UD_QP; else p_desc->send_dir = SEND_RC_QP; break; } return status; Please note that it is not clear that the function will return. I'll change it with if( status != NDIS_STATUS_PENDING ) { Return status; } /* not DHCP packet, keep going */ if( ETH_IS_MULTICAST( p_eth_hdr->dst.addr ) ) p_desc->send_dir = SEND_UD_QP; else p_desc->send_dir = SEND_RC_QP; break; From: Tzachi Dar Sent: Thursday, December 23, 2010 10:39 AM To: Alex Naslednikov; Galina Tcharny; Uri Habusha Cc: Tzachi Dar Subject: It seems that there are several places where the function __send_mgr_filter_udp is returning pending If I understand correctly this will cause the packets not to be sent. Is this by design? Is this something that I don't understand? Thanks Tzachi
_______________________________________________ ofw mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw
