Hello Jason and Doug, The RDMA functions that submit a work request accept a work request pointer as input but do not modify that work request. This patch series makes this explicit by declaring these pointers const. That change allows the compiler to verify that the input work request is not modified. Please consider these patches for kernel v4.19. Thanks, Bart. Changes compared to v2: - Addressed Leon's feedback in patch 3/4, the patch that modifies begin_wqe() in the mlx5 driver. - Removed a whitespace-only change from patch 2/4. Changes compared to v1: - Instead of only modifying the RDMA hw and sw drivers, also modify ib_post_*() and all ULP drivers. Bart Van Assche (4): IB/iser: Inline two work request conversion functions RDMA: Constify the argument of the work request conversion functions IB/mlx5, ib_post_send(), IB_WR_REG_SIG_MR: Do not modify the 'wr' argument RDMA, core and ULPs: Declare ib_post_send() and ib_post_recv() arguments const drivers/infiniband/core/mad.c | 9 +- drivers/infiniband/core/rw.c | 3 +- drivers/infiniband/core/uverbs_cmd.c | 9 +- drivers/infiniband/core/verbs.c | 5 +- drivers/infiniband/hw/bnxt_re/ib_verbs.c | 34 ++++---- drivers/infiniband/hw/bnxt_re/ib_verbs.h | 12 +-- drivers/infiniband/hw/cxgb3/iwch_provider.h | 8 +- drivers/infiniband/hw/cxgb3/iwch_qp.c | 32 ++++---- drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 8 +- drivers/infiniband/hw/cxgb4/qp.c | 42 ++++++---- drivers/infiniband/hw/hns/hns_roce_device.h | 10 +-- drivers/infiniband/hw/hns/hns_roce_hw_v1.c | 13 +-- drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 16 ++-- drivers/infiniband/hw/i40iw/i40iw_verbs.c | 9 +- drivers/infiniband/hw/mlx4/mad.c | 7 +- drivers/infiniband/hw/mlx4/mlx4_ib.h | 12 +-- drivers/infiniband/hw/mlx4/qp.c | 46 ++++++----- drivers/infiniband/hw/mlx4/srq.c | 4 +- drivers/infiniband/hw/mlx5/gsi.c | 8 +- drivers/infiniband/hw/mlx5/mlx5_ib.h | 22 ++--- drivers/infiniband/hw/mlx5/mr.c | 2 +- drivers/infiniband/hw/mlx5/qp.c | 82 ++++++++++--------- drivers/infiniband/hw/mlx5/srq.c | 4 +- drivers/infiniband/hw/mthca/mthca_dev.h | 24 +++--- drivers/infiniband/hw/mthca/mthca_qp.c | 24 +++--- drivers/infiniband/hw/mthca/mthca_srq.c | 8 +- drivers/infiniband/hw/nes/nes_verbs.c | 11 +-- drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 28 +++---- drivers/infiniband/hw/ocrdma/ocrdma_verbs.h | 12 +-- drivers/infiniband/hw/qedr/qedr_roce_cm.c | 12 +-- drivers/infiniband/hw/qedr/qedr_roce_cm.h | 8 +- drivers/infiniband/hw/qedr/verbs.c | 33 ++++---- drivers/infiniband/hw/qedr/verbs.h | 8 +- drivers/infiniband/hw/qib/qib_verbs.h | 2 +- drivers/infiniband/hw/usnic/usnic_ib_verbs.c | 8 +- drivers/infiniband/hw/usnic/usnic_ib_verbs.h | 8 +- drivers/infiniband/hw/vmw_pvrdma/pvrdma_qp.c | 11 +-- drivers/infiniband/hw/vmw_pvrdma/pvrdma_srq.c | 4 +- .../infiniband/hw/vmw_pvrdma/pvrdma_verbs.h | 12 +-- drivers/infiniband/sw/rdmavt/qp.c | 16 ++-- drivers/infiniband/sw/rdmavt/qp.h | 12 +-- drivers/infiniband/sw/rxe/rxe_verbs.c | 26 +++--- drivers/infiniband/ulp/ipoib/ipoib_cm.c | 11 ++- drivers/infiniband/ulp/ipoib/ipoib_ib.c | 4 +- drivers/infiniband/ulp/iser/iser_memory.c | 5 +- drivers/infiniband/ulp/iser/iser_verbs.c | 9 +- drivers/infiniband/ulp/isert/ib_isert.c | 14 ++-- drivers/infiniband/ulp/srp/ib_srp.c | 10 ++- drivers/infiniband/ulp/srpt/ib_srpt.c | 11 ++- drivers/nvme/host/rdma.c | 8 +- drivers/nvme/target/rdma.c | 5 +- fs/cifs/smbdirect.c | 14 ++-- include/rdma/ib_verbs.h | 35 ++++---- net/9p/trans_rdma.c | 6 +- net/rds/ib_frmr.c | 5 +- net/rds/ib_recv.c | 4 +- net/rds/ib_send.c | 6 +- net/smc/smc_tx.c | 2 +- net/smc/smc_wr.c | 4 +- net/smc/smc_wr.h | 2 +- net/sunrpc/xprtrdma/fmr_ops.c | 2 +- net/sunrpc/xprtrdma/frwr_ops.c | 6 +- net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | 2 +- net/sunrpc/xprtrdma/svc_rdma_rw.c | 3 +- net/sunrpc/xprtrdma/svc_rdma_sendto.c | 2 +- net/sunrpc/xprtrdma/verbs.c | 6 +- 66 files changed, 449 insertions(+), 391 deletions(-) -- 2.18.0 -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html