From: Jason Gunthorpe <jgg@xxxxxxxxxxxx> This series reworks all the places that execute commands to use a consistent set of helpers around write(). The helpers are designed to accept the location of all 5 buffers (hdr, cmd, drv_cmd, resp, drv_resp) involved with a command. This cleanup removes a bunch of duplicated code and paves the way to add more options for delivering commands to the kernel. It is the same theme as the new uverbs kernel series currently on the list. This is PR on github: https://github.com/linux-rdma/rdma-core/pull/434 Jason Gunthorpe (10): verbs: Fix wrong command structure usage verbs: Add explicit arguments to DECLARE_CMD_BUFFER_COMPAT() verbs: Move ibv_create_comp_channel to use execute_write verbs: Consolidate duplicate code in create_rwq_ind_table verbs: Replace IBV_INIT_CMD_RESP() with execute_cmd_write verbs: Replace IBV_INIT_CMD() with execute_cmd_write_resp verbs: Replace IBV_INIT_CMD_RESP_EX*() with execute_cmd_write_ex verbs: Replace execute_write with execute_cmd_write/_req verbs: Replace execute_write_ex with execute_cmd_ex/_resp verbs: use the execute_cmd_write/_ex path for the ioctl fallback CMakeLists.txt | 3 +- debian/control | 2 +- debian/libibverbs1.symbols | 2 +- libibverbs/cmd.c | 547 ++++++++++++++++--------------------- libibverbs/cmd_cq.c | 24 +- libibverbs/cmd_fallback.c | 77 +++--- libibverbs/cmd_ioctl.c | 1 + libibverbs/cmd_write.h | 204 ++++++++------ libibverbs/driver.h | 17 +- libibverbs/ibverbs.h | 49 ---- libibverbs/kern-abi.h | 6 +- libibverbs/verbs.c | 12 +- providers/mlx4/verbs.c | 49 +--- providers/mlx5/verbs.c | 72 ++--- 14 files changed, 458 insertions(+), 607 deletions(-) -- 2.19.1