mirror_ubuntu-kernels/include/uapi/rdma
Jason Gunthorpe 9a59739bd0 IB/rxe: Revise the ib_wr_opcode enum
This enum has become part of the uABI, as both RXE and the
ib_uverbs_post_send() command expect userspace to supply values from this
enum. So it should be properly placed in include/uapi/rdma.

In userspace this enum is called 'enum ibv_wr_opcode' as part of
libibverbs.h. That enum defines different values for IB_WR_LOCAL_INV,
IB_WR_SEND_WITH_INV, and IB_WR_LSO. These were introduced (incorrectly, it
turns out) into libiberbs in 2015.

The kernel has changed its mind on the numbering for several of the IB_WC
values over the years, but has remained stable on IB_WR_LOCAL_INV and
below.

Based on this we can conclude that there is no real user space user of the
values beyond IB_WR_ATOMIC_FETCH_AND_ADD, as they have never worked via
rdma-core. This is confirmed by inspection, only rxe uses the kernel enum
and implements the latter operations. rxe has clearly never worked with
these attributes from userspace. Other drivers that support these opcodes
implement the functionality without calling out to the kernel.

To make IB_WR_SEND_WITH_INV and related work for RXE in userspace we
choose to renumber the IB_WR enum in the kernel to match the uABI that
userspace has bee using since before Soft RoCE was merged. This is an
overall simpler configuration for the whole software stack, and obviously
can't break anything existing.

Reported-by: Seth Howell <seth.howell@intel.com>
Tested-by: Seth Howell <seth.howell@intel.com>
Fixes: 8700e3e7c4 ("Soft RoCE driver")
Cc: <stable@vger.kernel.org>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
2018-09-17 17:06:02 -06:00
..
hfi RDMA: Change all uapi headers to use __aligned_u64 instead of __u64 2018-03-27 14:25:09 -06:00
bnxt_re-abi.h RDMA: Change all uapi headers to use __aligned_u64 instead of __u64 2018-03-27 14:25:09 -06:00
cxgb3-abi.h uapi: Fix SPDX tags for files referring to the 'OpenIB.org' license 2018-04-23 11:10:33 -04:00
cxgb4-abi.h iw_cxgb4: RDMA write with immediate support 2018-08-02 20:16:02 -06:00
hns-abi.h RDMA/hns: Support flush cqe for hip08 in kernel space 2018-08-02 20:03:25 -06:00
i40iw-abi.h RDMA: Change all uapi headers to use __aligned_u64 instead of __u64 2018-03-27 14:25:09 -06:00
ib_user_cm.h uapi: Fix SPDX tags for files referring to the 'OpenIB.org' license 2018-04-23 11:10:33 -04:00
ib_user_ioctl_cmds.h RDMA/uverbs: Split UVERBS_ATTR_FLOW_ACTION_ESP_HANDLE 2018-07-04 13:47:01 -06:00
ib_user_ioctl_verbs.h IB/uverbs: Move ib_access_flags and ib_read_counters_flags to uapi 2018-07-23 15:45:34 -06:00
ib_user_mad.h uapi: Fix SPDX tags for files referring to the 'OpenIB.org' license 2018-04-23 11:10:33 -04:00
ib_user_sa.h uapi: Fix SPDX tags for files referring to the 'OpenIB.org' license 2018-04-23 11:10:33 -04:00
ib_user_verbs.h IB/rxe: Revise the ib_wr_opcode enum 2018-09-17 17:06:02 -06:00
mlx4-abi.h uapi: Fix SPDX tags for files referring to the 'OpenIB.org' license 2018-04-23 11:10:33 -04:00
mlx5_user_ioctl_cmds.h RDMA/mlx5: Allow creating a matcher for a NIC TX flow table 2018-09-11 09:28:07 -06:00
mlx5_user_ioctl_verbs.h RDMA/mlx5: Extend packet reformat verbs 2018-09-05 15:23:59 -06:00
mlx5-abi.h Merge branch 'mlx5-dump-fill-mkey' into rdma.git for-next 2018-07-04 13:23:46 -06:00
mthca-abi.h uapi: Fix SPDX tags for files referring to the 'OpenIB.org' license 2018-04-23 11:10:33 -04:00
nes-abi.h uapi: Fix SPDX tags for files referring to the 'OpenIB.org' license 2018-04-23 11:10:33 -04:00
ocrdma-abi.h RDMA: Change all uapi headers to use __aligned_u64 instead of __u64 2018-03-27 14:25:09 -06:00
qedr-abi.h qedr: Add user space support for SRQ 2018-08-14 16:31:54 -06:00
rdma_netlink.h RDMA/uapi: Fix uapi breakage 2018-05-15 15:54:46 -04:00
rdma_user_cm.h uapi: Fix SPDX tags for files referring to the 'OpenIB.org' license 2018-04-23 11:10:33 -04:00
rdma_user_ioctl_cmds.h IB/uverbs: Add IDRs array attribute type to ioctl() interface 2018-09-11 09:28:06 -06:00
rdma_user_ioctl.h uapi: Fix SPDX tags for files referring to the 'OpenIB.org' license 2018-04-23 11:10:33 -04:00
rdma_user_rxe.h uapi: Fix SPDX tags for files referring to the 'OpenIB.org' license 2018-04-23 11:10:33 -04:00
vmw_pvrdma-abi.h RDMA: Change all uapi headers to use __aligned_u64 instead of __u64 2018-03-27 14:25:09 -06:00