Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3ac1662a authored by Zhang Changzhong's avatar Zhang Changzhong Committed by Greg Kroah-Hartman
Browse files

qed: fix error return code in qed_iwarp_ll2_start()



[ 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: 469981b1 ("qed: Add unaligned and packed packet processing")
Fixes: fcb39f6c ("qed: Add mpa buffer descriptors for storing and processing mpa fpdus")
Fixes: 1e28eaad ("qed: Add iWARP support for fpdu spanned over more than two tcp packets")
Reported-by: default avatarHulk Robot <hulkci@huawei.com>
Signed-off-by: default avatarZhang Changzhong <zhangchangzhong@huawei.com>
Acked-by: default avatarMichal <Kalderon &lt;michal.kalderon@marvell.com>
Link: https://lore.kernel.org/r/1605532033-27373-1-git-send-email-zhangchangzhong@huawei.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 082b21d0
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -2737,14 +2737,18 @@ qed_iwarp_ll2_start(struct qed_hwfn *p_hwfn,
	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_hwfn,
	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);