| From 7a6b013e4cd0e2c83136ae71a466a41435c1d878 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 20 Nov 2020 09:57:02 +0800 |
| Subject: IB/mthca: fix return value of error branch in mthca_init_cq() |
| |
| From: Xiongfeng Wang <wangxiongfeng2@huawei.com> |
| |
| [ Upstream commit 6830ff853a5764c75e56750d59d0bbb6b26f1835 ] |
| |
| We return 'err' in the error branch, but this variable may be set as zero |
| by the above code. Fix it by setting 'err' as a negative value before we |
| goto the error label. |
| |
| Fixes: 74c2174e7be5 ("IB uverbs: add mthca user CQ support") |
| Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") |
| Link: https://lore.kernel.org/r/1605837422-42724-1-git-send-email-wangxiongfeng2@huawei.com |
| Reported-by: Hulk Robot <hulkci@huawei.com> |
| Signed-off-by: Xiongfeng Wang <wangxiongfeng2@huawei.com> |
| Signed-off-by: Jason Gunthorpe <jgg@nvidia.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/infiniband/hw/mthca/mthca_cq.c | 10 ++++++---- |
| 1 file changed, 6 insertions(+), 4 deletions(-) |
| |
| diff --git a/drivers/infiniband/hw/mthca/mthca_cq.c b/drivers/infiniband/hw/mthca/mthca_cq.c |
| index c3cfea243af8c..119b2573c9a08 100644 |
| --- a/drivers/infiniband/hw/mthca/mthca_cq.c |
| +++ b/drivers/infiniband/hw/mthca/mthca_cq.c |
| @@ -803,8 +803,10 @@ int mthca_init_cq(struct mthca_dev *dev, int nent, |
| } |
| |
| mailbox = mthca_alloc_mailbox(dev, GFP_KERNEL); |
| - if (IS_ERR(mailbox)) |
| + if (IS_ERR(mailbox)) { |
| + err = PTR_ERR(mailbox); |
| goto err_out_arm; |
| + } |
| |
| cq_context = mailbox->buf; |
| |
| @@ -846,9 +848,9 @@ int mthca_init_cq(struct mthca_dev *dev, int nent, |
| } |
| |
| spin_lock_irq(&dev->cq_table.lock); |
| - if (mthca_array_set(&dev->cq_table.cq, |
| - cq->cqn & (dev->limits.num_cqs - 1), |
| - cq)) { |
| + err = mthca_array_set(&dev->cq_table.cq, |
| + cq->cqn & (dev->limits.num_cqs - 1), cq); |
| + if (err) { |
| spin_unlock_irq(&dev->cq_table.lock); |
| goto err_out_free_mr; |
| } |
| -- |
| 2.27.0 |
| |