| From foo@baz Sun Nov 22 12:00:04 PM CET 2020 |
| From: Zhang Changzhong <zhangchangzhong@huawei.com> |
| Date: Mon, 16 Nov 2020 21:07:13 +0800 |
| Subject: qed: fix error return code in qed_iwarp_ll2_start() |
| |
| From: Zhang Changzhong <zhangchangzhong@huawei.com> |
| |
| [ Upstream commit cb47d16ea21045c66eebbf5ed792e74a8537e27a ] |
| |
| Fix to return a negative error code from the error handling |
| case instead of 0, as done elsewhere in this function. |
| |
| Fixes: 469981b17a4f ("qed: Add unaligned and packed packet processing") |
| Fixes: fcb39f6c10b2 ("qed: Add mpa buffer descriptors for storing and processing mpa fpdus") |
| Fixes: 1e28eaad07ea ("qed: Add iWARP support for fpdu spanned over more than two tcp packets") |
| Reported-by: Hulk Robot <hulkci@huawei.com> |
| Signed-off-by: Zhang Changzhong <zhangchangzhong@huawei.com> |
| Acked-by: Michal Kalderon <michal.kalderon@marvell.com> |
| Link: https://lore.kernel.org/r/1605532033-27373-1-git-send-email-zhangchangzhong@huawei.com |
| Signed-off-by: Jakub Kicinski <kuba@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/ethernet/qlogic/qed/qed_iwarp.c | 12 +++++++++--- |
| 1 file changed, 9 insertions(+), 3 deletions(-) |
| |
| --- a/drivers/net/ethernet/qlogic/qed/qed_iwarp.c |
| +++ b/drivers/net/ethernet/qlogic/qed/qed_iwarp.c |
| @@ -2737,14 +2737,18 @@ qed_iwarp_ll2_start(struct qed_hwfn *p_h |
| iwarp_info->partial_fpdus = kcalloc((u16)p_hwfn->p_rdma_info->num_qps, |
| sizeof(*iwarp_info->partial_fpdus), |
| GFP_KERNEL); |
| - if (!iwarp_info->partial_fpdus) |
| + if (!iwarp_info->partial_fpdus) { |
| + rc = -ENOMEM; |
| goto err; |
| + } |
| |
| iwarp_info->max_num_partial_fpdus = (u16)p_hwfn->p_rdma_info->num_qps; |
| |
| iwarp_info->mpa_intermediate_buf = kzalloc(buff_size, GFP_KERNEL); |
| - if (!iwarp_info->mpa_intermediate_buf) |
| + if (!iwarp_info->mpa_intermediate_buf) { |
| + rc = -ENOMEM; |
| goto err; |
| + } |
| |
| /* The mpa_bufs array serves for pending RX packets received on the |
| * mpa ll2 that don't have place on the tx ring and require later |
| @@ -2754,8 +2758,10 @@ qed_iwarp_ll2_start(struct qed_hwfn *p_h |
| iwarp_info->mpa_bufs = kcalloc(data.input.rx_num_desc, |
| sizeof(*iwarp_info->mpa_bufs), |
| GFP_KERNEL); |
| - if (!iwarp_info->mpa_bufs) |
| + if (!iwarp_info->mpa_bufs) { |
| + rc = -ENOMEM; |
| goto err; |
| + } |
| |
| INIT_LIST_HEAD(&iwarp_info->mpa_buf_pending_list); |
| INIT_LIST_HEAD(&iwarp_info->mpa_buf_list); |