The modify CQ command disables the effect of both the count and period
paramters if any of them is zero. This is undesirable since we may still want
to have one of them in effect while the other is neutralized. To do so we put
the max value to a parameter if its value is zero while the other's is not
zero. This is also consistent with the interfaces of ethtool but is still
generally good.

Signed-off-by: Eli Cohen <e...@mellanox.co.il>
---
 drivers/net/mlx4/cq.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/drivers/net/mlx4/cq.c b/drivers/net/mlx4/cq.c
index 7cd34e9..24bf440 100644
--- a/drivers/net/mlx4/cq.c
+++ b/drivers/net/mlx4/cq.c
@@ -149,6 +149,13 @@ int mlx4_cq_modify(struct mlx4_dev *dev, struct mlx4_cq 
*cq,
        cq_context = mailbox->buf;
        memset(cq_context, 0, sizeof *cq_context);
 
+
+       if (count | period) {
+               if (!count)
+                       count = 0xffff;
+               else if (!period)
+                       period = 0xffff;
+       }
        cq_context->cq_max_count = cpu_to_be16(count);
        cq_context->cq_period    = cpu_to_be16(period);
 
-- 
1.7.3.1

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to