mirror of
https://github.com/torvalds/linux.git
synced 2026-09-25 17:42:03 +02:00
The eRDMA device interface requires explicit byte ordering, but several
DMA-visible values that should be little-endian remain native-endian.
Command request payloads are copied verbatim, data-path SQE headers are
written without cpu_to_le64(), and kernel doorbell records are assigned
plain u64 values. The command completion path also reads a little-endian
SQE header without conversion.
These paths are byte-swapped on big-endian kernels and can break command
processing during probe. Since complete big-endian support requires
converting every device-visible structure, depend on !CPU_BIG_ENDIAN.
Fixes: ca7fd6cff3 ("RDMA/erdma: Add driver to kernel build environment")
Link: https://patch.msgid.link/20260806-missing-endianness-conversion-for-64-v1-1-896327c1aff1@nvidia.com
Acked-by: Cheng Xu <chengyou@linux.alibaba.com>
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
13 lines
461 B
Plaintext
13 lines
461 B
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
config INFINIBAND_ERDMA
|
|
tristate "Alibaba Elastic RDMA Adapter (ERDMA) support"
|
|
depends on PCI_MSI && 64BIT && !CPU_BIG_ENDIAN
|
|
depends on INFINIBAND_ADDR_TRANS
|
|
depends on INFINIBAND_USER_ACCESS
|
|
help
|
|
This is a RDMA driver for Alibaba Elastic RDMA Adapter(ERDMA),
|
|
which supports RDMA features in Alibaba cloud environment.
|
|
|
|
To compile this driver as module, choose M here. The module will be
|
|
called erdma.
|