Sashiko pointed out these are dangerous, and the create_qp() one is in fact a bug. The query_device is just ugly old code.
Remove the stack ib_udata's from both places. Jason Gunthorpe (2): RDMA/core: Don't make a dummy ib_udata on the stack in create_qp RDMA: Update the query_device() op drivers/infiniband/core/core_priv.h | 2 +- drivers/infiniband/core/device.c | 3 +-- drivers/infiniband/core/ib_core_uverbs.c | 12 +++++++++++ drivers/infiniband/core/rdma_core.h | 7 +++++++ drivers/infiniband/core/uverbs_cmd.c | 14 +------------ drivers/infiniband/core/uverbs_std_types_qp.c | 3 +-- drivers/infiniband/core/verbs.c | 20 ++++++++++--------- drivers/infiniband/hw/bnxt_re/ib_verbs.c | 5 ++++- drivers/infiniband/hw/cxgb4/provider.c | 8 +++++--- drivers/infiniband/hw/erdma/erdma_verbs.c | 9 +++++++-- drivers/infiniband/hw/hns/hns_roce_main.c | 7 ++++++- drivers/infiniband/hw/ionic/ionic_ibdev.c | 7 ++++++- drivers/infiniband/hw/irdma/verbs.c | 8 +++++--- drivers/infiniband/hw/mana/main.c | 7 ++++++- drivers/infiniband/hw/mlx4/main.c | 13 ++++++------ drivers/infiniband/hw/mthca/mthca_provider.c | 13 +++++++----- drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 8 +++++--- drivers/infiniband/hw/qedr/verbs.c | 7 ++++++- drivers/infiniband/hw/usnic/usnic_ib_verbs.c | 8 +++++--- .../infiniband/hw/vmw_pvrdma/pvrdma_verbs.c | 8 +++++--- drivers/infiniband/sw/rdmavt/vt.c | 9 ++++++--- drivers/infiniband/sw/rxe/rxe_verbs.c | 14 ++++--------- drivers/infiniband/sw/siw/siw_verbs.c | 8 +++++--- 23 files changed, 124 insertions(+), 76 deletions(-) base-commit: fd9482545e37fb6b7e04b588ad2bd80a2779776c -- 2.43.0
