linux/drivers/infiniband/core
Jason Gunthorpe 422e3d37ed RDMA/uverbs: Combine MIN_SZ_OR_ZERO with UVERBS_ATTR_STRUCT
After all the rework is done it is now possible to include single flags in
the type macros. Any user of UVERBS_ATTR_STRUCT needs to zero check data
past the end of the known struct to be correct, so make this mandatory,
and get rid of MIN_SZ_OR_ZERO as a user flag.

This changes UVERBS_ATTR_TYPE to refer to a struct of exact size with not
possibility of extension, convert the few users of UVERBS_ATTR_TYPE and
MIN_SZ_OR_ZERO to use UVERBS_ATTR_STRUCT.

The one user of UVERBS_ATTR_STRUCT without MIN_SZ_OR_ZERO is just
confused. There is some padding at the end of that struct, but userspace
always provides it with the padding. The construction doesn't test if the
padding is zero, so it is pointless. Just use UVERBS_ATTR_TYPE.

Finally, rename min_sz_or_zero to zero_trailing to better reflect what it
does and hopefully avoid such mis-uses in the future.

Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
2018-07-04 13:47:01 -06:00
..
addr.c IB/cm: Remove now useless rcu_lock in dst_fetch_ha 2018-06-29 11:45:50 -06:00
agent.c IB/core: Rename ib_destroy_ah to rdma_destroy_ah 2017-05-01 14:32:43 -04:00
agent.h
cache.c RDMA/core: Remove unused ib cache functions 2018-06-25 14:19:57 -06:00
cgroup.c
cm_msgs.h
cm.c IB/cm: Use sgid_attr from the AV 2018-06-25 14:19:57 -06:00
cma_configfs.c IB/cma: use strlcpy() instead of strncpy() 2018-01-15 15:33:21 -07:00
cma_priv.h RDMA/cma: Move rdma_cm_state to cma_priv.h 2018-03-29 13:54:21 -06:00
cma.c IB/cm: Replace members of sa_path_rec with 'struct sgid_attr *' 2018-06-25 14:19:57 -06:00
core_priv.h RDMA/core: Remove indirection through ib_cache_setup() 2018-05-29 15:19:31 -06:00
cq.c RDMA/core: Reduce poll batch for direct cq polling 2018-03-06 20:08:39 -07:00
device.c IB: Replace ib_query_gid/ib_get_cached_gid with rdma_query_gid 2018-06-18 11:09:05 -06:00
fmr_pool.c treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
iwcm.c RDMA/netlink: Fix general protection fault 2017-12-07 15:28:07 -05:00
iwcm.h
iwpm_msg.c RDMA/iwpm: Properly mark end of NL messages 2017-09-29 11:32:42 -04:00
iwpm_util.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
iwpm_util.h
mad_priv.h IB/mad: Use IDR for agent IDs 2018-06-18 11:22:54 -06:00
mad_rmpp.c IB/mad: Change slid in RMPP recv from 16 to 32 bits 2017-08-08 14:47:18 -04:00
mad_rmpp.h
mad.c IB/mad: Use IDR for agent IDs 2018-06-18 11:22:54 -06:00
Makefile Verbs flow counters support 2018-06-04 08:48:11 -06:00
mr_pool.c
multicast.c IB: Make ib_init_ah_from_mcmember set sgid_attr 2018-06-25 14:19:56 -06:00
netlink.c RDMA/netlink: Simplify code of autoload modules 2018-01-02 13:36:57 -07:00
nldev.c RDMA/nldev: Return port capability flag for IB only 2018-06-18 11:09:05 -06:00
opa_smi.h
packer.c
rdma_core.c RDMA/uverbs: Store the specs_root in the struct ib_uverbs_device 2018-07-04 13:47:01 -06:00
rdma_core.h RDMA/uverbs: Store the specs_root in the struct ib_uverbs_device 2018-07-04 13:47:01 -06:00
restrack.c RDMA/restrack: Change SPDX tag to properly reflect license 2018-06-05 14:04:20 -06:00
roce_gid_mgmt.c IB/core: Remove duplicate declaration of gid_cache_wq 2018-05-24 09:39:25 -06:00
rw.c IB/core: type promotion bug in rdma_rw_init_one_mr() 2018-07-04 12:05:28 -06:00
sa_query.c IB/cm: Replace members of sa_path_rec with 'struct sgid_attr *' 2018-06-25 14:19:57 -06:00
sa.h
security.c IB/core: Use CONFIG_SECURITY_INFINIBAND to compile out security code 2018-05-01 11:16:36 -04:00
smi.c
smi.h
sysfs.c IB/core: Replace ib_query_gid with rdma_get_gid_attr 2018-06-18 11:09:05 -06:00
ucm.c RDMA: Use u64_to_user_ptr everywhere 2018-03-29 13:42:29 -06:00
ucma.c infiniband: fix a possible use-after-free bug 2018-06-04 09:37:03 -06:00
ud_header.c
umem_odp.c treewide: Use array_size() in vzalloc() 2018-06-12 16:19:22 -07:00
umem.c RDMA/umem: Don't check for a negative return value of dma_map_sg_attrs() 2018-06-26 14:37:26 -06:00
user_mad.c IB: Make ib_init_ah_attr_from_wc set sgid_attr 2018-06-25 14:19:56 -06:00
uverbs_cmd.c IB: Improve uverbs_cleanup_ucontext algorithm 2018-06-29 14:35:46 -06:00
uverbs_ioctl_merge.c RDMA/uverbs: Combine MIN_SZ_OR_ZERO with UVERBS_ATTR_STRUCT 2018-07-04 13:47:01 -06:00
uverbs_ioctl.c RDMA/uverbs: Combine MIN_SZ_OR_ZERO with UVERBS_ATTR_STRUCT 2018-07-04 13:47:01 -06:00
uverbs_main.c RDMA/uverbs: Store the specs_root in the struct ib_uverbs_device 2018-07-04 13:47:01 -06:00
uverbs_marshall.c IB/cm: Replace members of sa_path_rec with 'struct sgid_attr *' 2018-06-25 14:19:57 -06:00
uverbs_std_types_counters.c RDMA/uverbs: Use UVERBS_ATTR_MIN_SIZE correctly and uniformly 2018-07-04 13:47:01 -06:00
uverbs_std_types_cq.c RDMA/uverbs: Remove UA_FLAGS 2018-07-04 13:47:01 -06:00
uverbs_std_types_dm.c RDMA/uverbs: Remove UA_FLAGS 2018-07-04 13:47:01 -06:00
uverbs_std_types_flow_action.c RDMA/uverbs: Combine MIN_SZ_OR_ZERO with UVERBS_ATTR_STRUCT 2018-07-04 13:47:01 -06:00
uverbs_std_types_mr.c RDMA/uverbs: Remove UA_FLAGS 2018-07-04 13:47:01 -06:00
uverbs_std_types.c RDMA/uverbs: Get rid of the & in method specifications 2018-07-04 13:47:01 -06:00
uverbs.h RDMA/uverbs: Simplify UVERBS_OBJECT and _TREE family of macros 2018-07-04 13:47:01 -06:00
verbs.c IB/core: Check for rdma_protocol_ib only after validating port_num 2018-06-27 15:05:58 -06:00