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