summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKashyap Desai <kashyap.desai@broadcom.com>2024-12-04 13:24:12 +0530
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-01-09 13:32:09 +0100
commit3de1b50f055dc2ca7072a526cdda21f691c22dd9 (patch)
treea972c132a1324188ef854a951b84ea5654f925fb
parentf61e663d78ff9def3eabad63ae2d64a80513cb82 (diff)
downloadlinux-3de1b50f055dc2ca7072a526cdda21f691c22dd9.tar.gz
linux-3de1b50f055dc2ca7072a526cdda21f691c22dd9.tar.bz2
linux-3de1b50f055dc2ca7072a526cdda21f691c22dd9.zip
RDMA/bnxt_re: Fix max SGEs for the Work Request
commit 79d330fbdffd8cee06d8bdf38d82cb62d8363a27 upstream. Gen P7 supports up to 13 SGEs for now. WQE software structure can hold only 6 now. Since the max send sge is reported as 13, the stack can give requests up to 13 SGEs. This is causing traffic failures and system crashes. Use the define for max SGE supported for variable size. This will work for both static and variable WQEs. Fixes: 227f51743b61 ("RDMA/bnxt_re: Fix the max WQE size for static WQE support") Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com> Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com> Link: https://patch.msgid.link/20241204075416.478431-2-kalesh-anakkur.purayil@broadcom.com Signed-off-by: Leon Romanovsky <leon@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/infiniband/hw/bnxt_re/qplib_fp.h3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/infiniband/hw/bnxt_re/qplib_fp.h b/drivers/infiniband/hw/bnxt_re/qplib_fp.h
index b64746d484d6..b5c53e864fbb 100644
--- a/drivers/infiniband/hw/bnxt_re/qplib_fp.h
+++ b/drivers/infiniband/hw/bnxt_re/qplib_fp.h
@@ -113,7 +113,6 @@ struct bnxt_qplib_sge {
u32 size;
};
-#define BNXT_QPLIB_QP_MAX_SGL 6
struct bnxt_qplib_swq {
u64 wr_id;
int next_idx;
@@ -153,7 +152,7 @@ struct bnxt_qplib_swqe {
#define BNXT_QPLIB_SWQE_FLAGS_UC_FENCE BIT(2)
#define BNXT_QPLIB_SWQE_FLAGS_SOLICIT_EVENT BIT(3)
#define BNXT_QPLIB_SWQE_FLAGS_INLINE BIT(4)
- struct bnxt_qplib_sge sg_list[BNXT_QPLIB_QP_MAX_SGL];
+ struct bnxt_qplib_sge sg_list[BNXT_VAR_MAX_SGE];
int num_sge;
/* Max inline data is 96 bytes */
u32 inline_len;