| From 6513151af3e1a47a49e3c3c3562cb2bdfe182d7b Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 10 Sep 2018 09:39:28 -0700 |
| Subject: IB/hfi1: Missing return value in error path for user sdma |
| |
| From: Michael J. Ruhl <michael.j.ruhl@intel.com> |
| |
| [ Upstream commit 2bf4b33f83dfe521c4c7c407b6b150aeec04d69c ] |
| |
| If the set_txreq_header_agh() function returns an error, the exit path |
| is chosen. |
| |
| In this path, the code fails to set the return value. This will cause |
| the caller to not realize an error has occurred. |
| |
| Set the return value correctly in the error path. |
| |
| Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com> |
| Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com> |
| Signed-off-by: Jason Gunthorpe <jgg@mellanox.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/infiniband/hw/hfi1/user_sdma.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/infiniband/hw/hfi1/user_sdma.c b/drivers/infiniband/hw/hfi1/user_sdma.c |
| index cbff746d9e9de..684a298e15037 100644 |
| --- a/drivers/infiniband/hw/hfi1/user_sdma.c |
| +++ b/drivers/infiniband/hw/hfi1/user_sdma.c |
| @@ -856,8 +856,10 @@ static int user_sdma_send_pkts(struct user_sdma_request *req, unsigned maxpkts) |
| |
| changes = set_txreq_header_ahg(req, tx, |
| datalen); |
| - if (changes < 0) |
| + if (changes < 0) { |
| + ret = changes; |
| goto free_tx; |
| + } |
| } |
| } else { |
| ret = sdma_txinit(&tx->txreq, 0, sizeof(req->hdr) + |
| -- |
| 2.20.1 |
| |