mirror of
https://github.com/torvalds/linux.git
synced 2026-06-03 03:53:37 +02:00
RDMA/bnxt_re: Fix IB_SEND_IP_CSUM handling in post_send
The bnxt_re SEND path checks wr->send_flags to enable features such as
IP checksum offload. However, send_flags is a bitmask and may contain
multiple flags (e.g. IB_SEND_SIGNALED | IB_SEND_IP_CSUM), while the
existing code uses a switch() statement that only matches when
send_flags is exactly IB_SEND_IP_CSUM.
As a result, checksum offload is not enabled when additional SEND
flags are present.
Replace the switch() with a bitmask test:
if (wr->send_flags & IB_SEND_IP_CSUM)
This ensures IP checksum offload is enabled correctly when multiple
SEND flags are used.
Fixes: 1ac5a40479 ("RDMA/bnxt_re: Add bnxt_re RoCE driver")
Signed-off-by: Alok Tiwari <alok.a.tiwari@oracle.com>
Link: https://patch.msgid.link/20251219093308.2415620-1-alok.a.tiwari@oracle.com
Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
This commit is contained in:
parent
fa3c411d21
commit
f01765a236
|
|
@ -2919,14 +2919,9 @@ int bnxt_re_post_send(struct ib_qp *ib_qp, const struct ib_send_wr *wr,
|
|||
wqe.rawqp1.lflags |=
|
||||
SQ_SEND_RAWETH_QP1_LFLAGS_ROCE_CRC;
|
||||
}
|
||||
switch (wr->send_flags) {
|
||||
case IB_SEND_IP_CSUM:
|
||||
if (wr->send_flags & IB_SEND_IP_CSUM)
|
||||
wqe.rawqp1.lflags |=
|
||||
SQ_SEND_RAWETH_QP1_LFLAGS_IP_CHKSUM;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
fallthrough;
|
||||
case IB_WR_SEND_WITH_INV:
|
||||
rc = bnxt_re_build_send_wqe(qp, wr, &wqe);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user