linux/drivers/infiniband/core
Maor Gottlieb 2adcb4c5a5 RDMA: Verify port when creating flow rule
Validate port value provided by the user and with that remove no longer
needed validation by the driver.  The missing check in the mlx5_ib driver
could cause to the below oops.

Call trace:
  _create_flow_rule+0x2d4/0xf28 [mlx5_ib]
  mlx5_ib_create_flow+0x2d0/0x5b0 [mlx5_ib]
  ib_uverbs_ex_create_flow+0x4cc/0x624 [ib_uverbs]
  ib_uverbs_handler_UVERBS_METHOD_INVOKE_WRITE+0xd4/0x150 [ib_uverbs]
  ib_uverbs_cmd_verbs.isra.7+0xb28/0xc50 [ib_uverbs]
  ib_uverbs_ioctl+0x158/0x1d0 [ib_uverbs]
  do_vfs_ioctl+0xd0/0xaf0
  ksys_ioctl+0x84/0xb4
  __arm64_sys_ioctl+0x28/0xc4
  el0_svc_common.constprop.3+0xa4/0x254
  el0_svc_handler+0x84/0xa0
  el0_svc+0x10/0x26c
 Code: b9401260 f9615681 51000400 8b001c20 (f9403c1a)

Fixes: 436f2ad05a ("IB/core: Export ib_create/destroy_flow through uverbs")
Link: https://lore.kernel.org/r/faad30dc5219a01727f47db3dc2f029d07c82c00.1623309971.git.leonro@nvidia.com
Reviewed-by: Mark Bloch <markb@mellanox.com>
Signed-off-by: Maor Gottlieb <maorg@nvidia.com>
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
2021-06-10 08:59:33 -03:00
..
addr.c RDMA/addr: Be strict with gid size 2021-04-08 16:14:56 -03:00
agent.c
agent.h
cache.c RDMA/core: Correct format of braces 2021-04-12 14:56:51 -03:00
cgroup.c
cm_msgs.h RDMA/core: Add necessary spaces 2021-04-12 14:52:22 -03:00
cm_trace.c
cm_trace.h
cm.c RDMA/core: Unify RoCE check and re-factor code 2021-04-19 12:56:53 -03:00
cma_configfs.c RDMA: Support more than 255 rdma ports 2021-03-26 09:31:21 -03:00
cma_priv.h IB/cma: Introduce rdma_set_min_rnr_timer() 2021-04-12 19:51:48 -03:00
cma_trace.c
cma_trace.h
cma.c RDMA/core: Don't access cm_id after its destruction 2021-05-18 14:05:26 -03:00
core_priv.h RDMA: Support more than 255 rdma ports 2021-03-26 09:31:21 -03:00
counters.c RDMA/uverbs: Refactor rdma_counter_set_auto_mode and __counter_set_mode 2021-03-26 11:52:09 -03:00
cq.c RDMA/core: Clean up cq pool mechanism 2020-12-10 15:05:17 -04:00
device.c RDMA: Support more than 255 rdma ports 2021-03-26 09:31:21 -03:00
ib_core_uverbs.c
iwcm.c
iwcm.h
iwpm_msg.c RDMA/core: Correct format of block comments 2021-04-12 14:56:51 -03:00
iwpm_util.c RDMA/core/iwpm_util: Fix some param description misspellings 2021-01-19 20:33:44 -04:00
iwpm_util.h IB: Fix kernel-doc markups 2020-12-07 15:45:00 -04:00
lag.c
mad_priv.h
mad_rmpp.c RDMA/core: Remove redundant spaces 2021-04-12 14:56:48 -03:00
mad_rmpp.h
mad.c RDMA/core: Correct format of block comments 2021-04-12 14:56:51 -03:00
Makefile RDMA/umem: Support importing dma-buf as user memory region 2021-01-20 16:07:52 -04:00
mr_pool.c
multicast.c RDMA: Support more than 255 rdma ports 2021-03-26 09:31:21 -03:00
netlink.c
nldev.c RDMA/nldev: Add copy-on-fork attribute to get sys command 2021-04-27 15:33:20 -03:00
opa_smi.h RDMA: Support more than 255 rdma ports 2021-03-26 09:31:21 -03:00
packer.c
rdma_core.c RDMA/core: Correct misspellings of two words in comments 2021-03-26 11:58:26 -03:00
rdma_core.h
restrack.c RDMA/restrack: Add support to get resource tracking for SRQ 2021-04-22 10:30:27 -03:00
restrack.h
roce_gid_mgmt.c RDMA: Support more than 255 rdma ports 2021-03-26 09:31:21 -03:00
rw.c RDMA: Support more than 255 rdma ports 2021-03-26 09:31:21 -03:00
sa_query.c RDMA: Support more than 255 rdma ports 2021-03-26 09:31:21 -03:00
sa.h RDMA: Support more than 255 rdma ports 2021-03-26 09:31:21 -03:00
security.c RDMA: Support more than 255 rdma ports 2021-03-26 09:31:21 -03:00
smi.c RDMA: Support more than 255 rdma ports 2021-03-26 09:31:21 -03:00
smi.h RDMA: Support more than 255 rdma ports 2021-03-26 09:31:21 -03:00
sysfs.c RDMA/core: Correct format of braces 2021-04-12 14:56:51 -03:00
trace.c
ucma.c RDMA/core: Add necessary spaces 2021-04-12 14:52:22 -03:00
ud_header.c
umem_dmabuf.c RDMA/mlx5: Consolidate MR destruction to mlx5_ib_dereg_mr() 2021-03-11 20:03:25 -04:00
umem_odp.c
umem.c RDMA merge window pull request 2021-05-01 09:15:05 -07:00
user_mad.c RDMA/core: Remove redundant spaces 2021-04-12 14:56:48 -03:00
uverbs_cmd.c RDMA: Verify port when creating flow rule 2021-06-10 08:59:33 -03:00
uverbs_ioctl.c IB/core: Split uverbs_get_const/default to consider target type 2021-03-11 20:20:36 -04:00
uverbs_main.c
uverbs_marshall.c
uverbs_std_types_async_fd.c
uverbs_std_types_counters.c
uverbs_std_types_cq.c
uverbs_std_types_device.c RDMA/uverbs: Fix a NULL vs IS_ERR() bug 2021-05-19 15:32:07 -03:00
uverbs_std_types_dm.c
uverbs_std_types_flow_action.c
uverbs_std_types_mr.c RDMA/uverbs: Add uverbs command for dma-buf based MR registration 2021-01-20 16:07:52 -04:00
uverbs_std_types_qp.c RDMA/restrack: Support all QP types 2020-11-27 11:38:46 -04:00
uverbs_std_types_srq.c
uverbs_std_types_wq.c
uverbs_std_types.c
uverbs_uapi.c
uverbs.h
verbs.c RDMA/restrack: Add support to get resource tracking for SRQ 2021-04-22 10:30:27 -03:00