mlx4: properly mask MGM entry members count
Subsystems (2)
PATCH v2 1/1 mlx4: properly mask MGM entry members count
The members_count field size is 24 bits so mask it properly when reading it.
---
Changes: Handle mlx4_multicast_detach too
drivers/net/mlx4/mcg.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
drivers/net/mlx4/mcg.c +2 -2
@@ -187,7 +187,7 @@ int mlx4_multicast_attach(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16],memcpy (mgm->gid, gid,16 ); } - members_count =be32_to_cpu (mgm->members_count); + members_count =be32_to_cpu (mgm->members_count) &0xffffff ;if (members_count ==MLX4_QP_PER_MGM ) {mlx4_err (dev,"MGM at index %x is full.\n" , index); err = -ENOMEM ;
@@ -270,7 +270,7 @@ int mlx4_multicast_detach(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16]) goto out; } - members_count =be32_to_cpu (mgm->members_count); + members_count =be32_to_cpu (mgm->members_count) &0xffffff ;for (loc =-1 , i =0 ; i < members_count; ++i)if ((be32_to_cpu (mgm->qp[i]) &MGM_QPN_MASK ) == qp->qpn) loc = i;
Signature · 6 lines
1.7.3.2 -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 8 lines · Eli Cohen
The
members_countfield size is 24 bits so mask it properly when reading it.Signed-off-by Eli Cohen <eli-VPRAkNaXOzVS1MOuV/[email protected]>---
-
members_count=be32_to_cpu(mgm->members_count);
+members_count=be32_to_cpu(mgm->members_count)&0xffffff;
Later, in attach/detach you are loosing protocol when assigning mgm->members_count.
line:mgm->members_count = cpu_to_be32(members_count)
should be changes to:mgm->members_count = cpu_to_be32(members_count) | (mgm->members_count & 0xff000000);
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html