Merge branch 'mlx5-devx' into wip/dl-for-next
From Yishai,
-----------------------------------
This series enriches DEVX support in few aspects: it enables interoperability
between DEVX and verbs and improves mechanism for controlling privileged DEVX
commands.
The first patch updates mlx5 ifc file.
Next 3 patches enable modifying and querying verbs objects via the DEVX
interface.
To achieve that the core layer introduced the 'UVERBS_IDR_ANY_OBJECT' type
to match any IDR object. Once it's used by some driver's method, the
infrastructure skips checking for the IDR type and it becomes the driver
handler responsibility.
The DEVX methods of modify and query were changed to get any object type via
the 'UVERBS_IDR_ANY_OBJECT' mechanism. The type checking is done per object as
part of the driver code.
The next 3 patches introduce more robust mechanism for controlling privileged
DEVX commands. The responsibility to block/allow per command was moved to be
done in the firmware based on the UID credentials that the driver reports upon
user context creation. This enables more granularity per command based on the
device security model and the user credentials.
In addition, by introducing a valid range for 'general commands' we prevent the
need to touch the driver's code any time that a new future command will be
added.
The last patch fixes the XRC verbs flow once a DEVX context is used. This is
needed as XRCD is some shared kernel resource and as such a kernel UID (=0)
should be used in its related resources.
Thanks
Yishai Hadas
-----------------------------------
The top 6 patches are the mlx5-devx series, the remainder are from the
mlx5-next tree as the mlx5-devx series depended on the mlx5-next
mlx5_ifc file update.
* mlx5-devx: (42 commits)
IB/mlx5: Allow XRC usage via verbs in DEVX context
IB/mlx5: Update the supported DEVX commands
IB/mlx5: Enforce DEVX privilege by firmware
IB/mlx5: Enable modify and query verbs objects via DEVX
IB/core: Enable getting an object type from a given uobject
IB/core: Introduce UVERBS_IDR_ANY_OBJECT
net/mlx5: Update mlx5_ifc with DEVX UCTX capabilities bits
RDMA/mlx5: Unfold modify RMP function
RDMA/mlx5: Unfold create RMP function
RDMA/mlx5: Initialize SRQ tables on mlx5_ib
RDMA/mlx5: Update SRQ functions signatures to mlx5_ib format
RDMA/mlx5: Use stages for callback to setup and release DEVX
RDMA/mlx5: Remove SRQ signature global flag
net/mlx5: Move SRQ functions to RDMA part
net/mlx5: Remove references to local mlx5_core functions
net/mlx5: Remove not-used lib/eq.h header file
net/mlx5: Remove dead transobj code
net/mlx5: Align SRQ licenses and copyright information
net/mlx5: Debug print for forwarded async events
net/mlx5: Forward SRQ resource events
...
Signed-off-by: Doug Ledford <dledford@redhat.com>