diff options
| author | Li RongQing <lirongqing@baidu.com> | 2026-10-19 13:05:03 +0800 |
|---|---|---|
| committer | Leon Romanovsky <leon@kernel.org> | 2026-10-20 03:28:44 -0400 |
| commit | 0fe31052d948a3a993bb2f58cd5886f7ec279ea7 (patch) | |
| tree | b1a81a63068fe7aeca0dbd1ba2b38602bc732dd1 /tools/perf/scripts/python/export-to-postgresql.py | |
| parent | 9dd8b9a337af844291edcd9139c927d0f7958dbe (diff) | |
RDMA/mlx5: Fix CQ resize destination index mask
In copy_resize_cqes, the destination CQE index is computed as
(i + 1) & cq->resize_buf->nent, but resize_buf->nent is produced by
roundup_pow_of_two(), so it is a power of two with exactly one bit set.
Masking with a single-bit value can only yield 0 or nent itself. The
buffer has nent entries, so valid indices are 0 .. nent - 1 and nent is
one past the last slot; whenever the masked result is nent the following
memcpy writes one entry out of bounds.
Use (nent - 1) as the wrap mask instead. For a power-of-two nent,
(i + 1) & (nent - 1) is the correct modulo-nent reduction, keeping the
index within [0, nent - 1]. This matches get_sw_cqe(), which addresses
the CQ buffer via n & cq->ibcq.cqe, where cq->ibcq.cqe == entries - 1 is
exactly the nent - 1 wrap mask.
Fixes: bde51583f49b ("IB/mlx5: Add support for resize CQ")
Signed-off-by: Li RongQing <lirongqing@baidu.com>
Link: https://patch.msgid.link/20261019050503.2313-1-lirongqing@baidu.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/export-to-postgresql.py')
0 files changed, 0 insertions, 0 deletions
