[ewg] [PATCH] ofa_kernel madeye.c

Mike Heinz michael.heinz at qlogic.com
Tue Jun 1 06:57:53 PDT 2010


I'm resending this, because it seems to have been overlooked.

The linux-rdma group does not feel madeye should be added to the upstream kernel, but there are still bugs in the version of madeye that we include in OFED. This patch should be applied to the OFED version of madeye.c.

-----Original Message-----
From: ewg-bounces at openfabrics.org [mailto:ewg-bounces at openfabrics.org] On Behalf Of Mike Heinz
Sent: Wednesday, May 26, 2010 4:01 PM
To: ewg at openfabrics.org
Subject: [ewg] [PATCH] ofa_kernel madeye.c

This is a simple fix. Several of the snoop filters in ./drivers/infiniband/util/madeye.c don't switch the attribute id to host byte order before checking it. 

Signed-off-by: Michael Heinz <michael.heinz at qlogic.com>

diff --git a/drivers/infiniband/util/madeye.c b/drivers/infiniband/util/madeye.c
index 0cda06c..2c650a3 100644
--- a/drivers/infiniband/util/madeye.c
+++ b/drivers/infiniband/util/madeye.c
@@ -401,7 +401,7 @@ static void snoop_smi_handler(struct ib_mad_agent *mad_agent,
 
 	if (!smp && hdr->mgmt_class != mgmt_class)
 		return;
-	if (attr_id && hdr->attr_id != attr_id)
+	if (attr_id && be16_to_cpu(hdr->attr_id) != attr_id)
 		return;
 
 	printk("Madeye:sent SMP\n");
@@ -413,7 +413,7 @@ static void recv_smi_handler(struct ib_mad_agent *mad_agent,
 {
 	if (!smp && mad_recv_wc->recv_buf.mad->mad_hdr.mgmt_class != mgmt_class)
 		return;
-	if (attr_id && mad_recv_wc->recv_buf.mad->mad_hdr.attr_id != attr_id)
+	if (attr_id && be16_to_cpu(mad_recv_wc->recv_buf.mad->mad_hdr.attr_id) != attr_id)
 		return;
 
 	printk("Madeye:recv SMP\n");
@@ -446,7 +446,7 @@ static void snoop_gsi_handler(struct ib_mad_agent *mad_agent,
 
 	if (!gmp && hdr->mgmt_class != mgmt_class)
 		return;
-	if (attr_id && hdr->attr_id != attr_id)
+	if (attr_id && be16_to_cpu(hdr->attr_id) != attr_id)
 		return;
 
 	printk("Madeye:sent GMP\n");
@@ -468,7 +468,7 @@ static void recv_gsi_handler(struct ib_mad_agent *mad_agent,
 
 	if (!gmp && hdr->mgmt_class != mgmt_class)
 		return;
-	if (attr_id && mad_recv_wc->recv_buf.mad->mad_hdr.attr_id != attr_id)
+	if (attr_id && be16_to_cpu(mad_recv_wc->recv_buf.mad->mad_hdr.attr_id) != attr_id)
 		return;
 
 	printk("Madeye:recv GMP\n");
_______________________________________________
ewg mailing list
ewg at lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg



More information about the ewg mailing list