linux_dsm_epyc7002/drivers/infiniband/core
Matan Barak 9ee79fce36 IB/core: Add completion queue (cq) object actions
Adding CQ ioctl actions:
1. create_cq
2. destroy_cq

This requires adding the following:
1. A specification describing the method
	a. Handler
	b. Attributes specification
		Each attribute is one of the following:
		a. PTR_IN - input data
			    Note: This could be encoded inlined for
				  data < 64bit
		b. PTR_OUT - response data
		c. IDR - idr based object
		d. FD - fd based object
                Blobs attributes (clauses a and b) contain their type,
	        while objects specifications (clauses c and d)
                contains the expected object type (for example, the
                given id should be UVERBS_TYPE_PD) and the required
                access (READ, WRITE, NEW or DESTROY). If a NEW is
                required, the new object's id will be assigned to this
                attribute. All attributes could get UA_FLAGS
                attribute. Currently we support stating that an
		attribute is mandatory or that the specification size
                corresponds to a lower bound (and that this attribute
		could be extended).
		We currently add both default attributes and the two
		generic UHW_IN and UHW_OUT driver specific attributes.
2. Handler
   A handler gets a uverbs_attr_bundle. The handler developer uses
   uverbs_attr_get to fetch an attribute of a given id.
   Each of these attribute groups correspond to the specification
   group defined in the action (clauses 1.b and 1.c respectively).
   The indices of these arrays corresponds to the attribute ids
   declared in the specifications (clause 2).

   The handler is quite simple. It assumes the infrastructure fetched
   all objects and locked, created or destroyed them as required by
   the specification. Pointer (or blob) attributes were validated to
   match their required sizes. After the handler finished, the
   infrastructure commits or rollbacks the objects.

Signed-off-by: Matan Barak <matanb@mellanox.com>
Reviewed-by: Yishai Hadas <yishaih@mellanox.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
2017-08-31 08:35:13 -04:00
..
addr.c Merge branch 'k.o/for-4.13-rc' into k.o/for-next 2017-08-18 14:12:04 -04:00
agent.c IB/core: Rename ib_destroy_ah to rdma_destroy_ah 2017-05-01 14:32:43 -04:00
agent.h IB/mad: Add final OPA MAD processing 2015-06-12 14:49:18 -04:00
cache.c RDMA/(core, ulp): Convert register/unregister event handler to be void 2017-08-24 16:27:10 -04:00
cgroup.c IB/core: added support to use rdma cgroup controller 2017-01-10 11:14:27 -05:00
cm_msgs.h IB/core: Fix unaligned accesses 2015-05-05 13:21:27 -04:00
cm.c IB/cm: Fix sleeping in atomic when RoCE is used 2017-08-31 08:35:07 -04:00
cma_configfs.c IB/cma: Add default RoCE TOS to CMA configfs 2017-02-15 09:51:28 -05:00
cma.c IB/cma: Fix erroneous validation of supported default GID type 2017-08-24 16:15:32 -04:00
core_priv.h Merge branch 'rdma-netlink' into k.o/merge-test 2017-08-10 14:34:18 -04:00
cq.c IB/cq: Don't process more than the given budget 2017-03-24 22:19:48 -04:00
device.c Merge branch 'mellanox' into k.o/for-next 2017-08-24 20:25:15 -04:00
fmr_pool.c IB/fmr_pool: Convert the cleanup thread into kthread worker API 2017-04-25 14:24:17 -04:00
iwcm.c rdma: Autoload netlink client modules 2017-08-22 17:04:22 -04:00
iwcm.h iw_cm: free cm_id resources on the last deref 2016-08-02 13:15:18 -04:00
iwpm_msg.c RDMA/netlink: Rename and remove redundant parameter from ibnl_multicast 2017-08-10 13:19:03 +03:00
iwpm_util.c RDMA/netlink: Rename and remove redundant parameter from ibnl_unicast* 2017-08-10 13:19:02 +03:00
iwpm_util.h iwpm: crash fix for large connections test 2016-03-16 13:48:32 -04:00
mad_priv.h IB/mad: use CQ abstraction 2016-01-19 15:25:45 -05: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 RDMA: Remove subversion $Id tags 2008-07-14 23:48:44 -07:00
mad.c IB/core: Enforce security on management datagrams 2017-05-23 12:27:21 -04:00
Makefile IB/core: Add uverbs merge trees functionality 2017-08-31 08:35:10 -04:00
mr_pool.c IB/core: add a simple MR pool 2016-05-13 13:37:18 -04:00
multicast.c IB/core: Define 'ib' and 'roce' rdma_ah_attr types 2017-05-01 14:32:43 -04:00
netlink.c rdma: Autoload netlink client modules 2017-08-22 17:04:22 -04:00
nldev.c rdma: Autoload netlink client modules 2017-08-22 17:04:22 -04:00
opa_smi.h IB: Add rdma_cap_ib_switch helper and use where appropriate 2015-07-14 13:20:08 -04:00
packer.c IB/core: trivial prink cleanup. 2016-03-03 10:20:25 -05:00
rdma_core.c IB/core: Explicitly destroy an object while keeping uobject 2017-08-31 08:35:11 -04:00
rdma_core.h IB/core: Add new ioctl interface 2017-08-31 08:35:09 -04:00
roce_gid_mgmt.c IB/core: Add generic function to extract IB speed from netdev 2017-07-24 08:45:11 -04:00
rw.c IB/core, RDMA RW API: Do not exceed QP SGE send limit 2016-08-02 12:02:41 -04:00
sa_query.c RDMA/(core, ulp): Convert register/unregister event handler to be void 2017-08-24 16:27:10 -04:00
sa.h
security.c IB/core: Fix uninitialized variable use in check_qp_port_pkey_settings 2017-07-07 09:49:26 +10:00
smi.c IB: Add rdma_cap_ib_switch helper and use where appropriate 2015-07-14 13:20:08 -04:00
smi.h IB: Add rdma_cap_ib_switch helper and use where appropriate 2015-07-14 13:20:08 -04:00
sysfs.c RDMA: Simplify get firmware interface 2017-08-10 13:28:10 +03:00
ucm.c IB/core: Convert ah_attr from OPA to IB when copying to user 2017-08-08 14:47:18 -04:00
ucma.c IB/core: Convert ah_attr from OPA to IB when copying to user 2017-08-08 14:47:18 -04:00
ud_header.c IB/core: trivial prink cleanup. 2016-03-03 10:20:25 -05:00
umem_odp.c RDMA/umem: Fix missing mmap_sem in get umem ODP call 2017-06-01 17:20:13 -04:00
umem_rbtree.c IB/umem: Update on demand page (ODP) support 2017-02-14 11:41:17 -05:00
umem.c RDMA/core: not to set page dirty bit if it's already set. 2017-06-01 17:20:12 -04:00
user_mad.c Add OPA extended LID support 2017-08-18 14:47:37 -04:00
uverbs_cmd.c IB/uverbs: Expose XRQ capabilities 2017-08-29 08:30:18 -04:00
uverbs_ioctl_merge.c IB/core: Add uverbs merge trees functionality 2017-08-31 08:35:10 -04:00
uverbs_ioctl.c IB/core: Add new ioctl interface 2017-08-31 08:35:09 -04:00
uverbs_main.c RDMA/(core, ulp): Convert register/unregister event handler to be void 2017-08-24 16:27:10 -04:00
uverbs_marshall.c IB/core: Convert ah_attr from OPA to IB when copying to user 2017-08-08 14:47:18 -04:00
uverbs_std_types.c IB/core: Add completion queue (cq) object actions 2017-08-31 08:35:13 -04:00
uverbs.h IB/core: Introduce drop flow specification 2017-04-21 12:26:05 -04:00
verbs.c IB/core: Add might_sleep() annotation to ib_init_ah_from_wc() 2017-08-31 08:35:07 -04:00