From: Eli Cohen <eli@dev.mellanox.co.il> Date: Tue, 2 Dec 2014 10:26:19 +0000 (+0200) Subject: mlx5: Fix error flow in add_keys X-Git-Tag: firefly_0821_release~176^2~2717^2~85^2 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=d14e71103bf61ed6c3de542f1752b6ce039b773d;p=firefly-linux-kernel-4.4.55.git mlx5: Fix error flow in add_keys If mlx5_core_create_mkey fails, decrease the pending counter to undo the previous increment. Signed-off-by: Eli Cohen <eli@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net> --- diff --git a/drivers/infiniband/hw/mlx5/mr.c b/drivers/infiniband/hw/mlx5/mr.c index 4c89b64aa9cf..5a80dd993761 100644 --- a/drivers/infiniband/hw/mlx5/mr.c +++ b/drivers/infiniband/hw/mlx5/mr.c @@ -159,6 +159,9 @@ static int add_keys(struct mlx5_ib_dev *dev, int c, int num) sizeof(*in), reg_mr_callback, mr, &mr->out); if (err) { + spin_lock_irq(&ent->lock); + ent->pending--; + spin_unlock_irq(&ent->lock); mlx5_ib_warn(dev, "create mkey failed %d\n", err); kfree(mr); break;