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