[ofa-general] [PATCH] Bug 988: BMA responses are discarded in kernel

Michael Brooks michael.brooks at qlogic.com
Wed Aug 27 10:44:28 PDT 2008


Notice of fix for bug 988
(https://bugs.openfabrics.org/show_bug.cgi?id=988).

The following patch resolves an issue where incoming BMA responses are
dropped due to a bad "is response" check.  Fixed to use the
ib_response_mad() predicate, which correctly handles BMA MADs.

Signed-off-by: Michael Brooks <michael.brooks at qlogic.com>
---
diff --git a/drivers/infiniband/core/mad.c
b/drivers/infiniband/core/mad.c
index 6f42877..19d9468 100644
--- a/drivers/infiniband/core/mad.c
+++ b/drivers/infiniband/core/mad.c
@@ -1693,9 +1693,8 @@ static inline int rcv_has_same_gid(struct
ib_mad_agent_private *mad_agent_priv,
 	u8 port_num = mad_agent_priv->agent.port_num;
 	u8 lmc;
 
-	send_resp = ((struct ib_mad *)(wr->send_buf.mad))->
-		     mad_hdr.method & IB_MGMT_METHOD_RESP;
-	rcv_resp = rwc->recv_buf.mad->mad_hdr.method &
IB_MGMT_METHOD_RESP;
+	send_resp = ib_response_mad((struct ib_mad *)wr->send_buf.mad);
+	rcv_resp = ib_response_mad(rwc->recv_buf.mad);
 
 	if (send_resp == rcv_resp)
 		/* both requests, or both responses. GIDs different */



More information about the general mailing list