1. 11 Dec, 2018 8 commits
  2. 07 Dec, 2018 21 commits
  3. 05 Dec, 2018 4 commits
  4. 04 Dec, 2018 7 commits
    • Doug Ledford's avatar
      Merge branch 'mlx5-devx' into wip/dl-for-next · b2d8754f
      Doug Ledford authored
      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: default avatarDoug Ledford <dledford@redhat.com>
      b2d8754f
    • Yishai Hadas's avatar
      IB/mlx5: Allow XRC usage via verbs in DEVX context · 5aa3771d
      Yishai Hadas authored
      Allows XRC usage from the verbs flow in a DEVX context.
      As XRCD is some shared kernel resource between processes it should be
      created with UID=0 to point on that.
      
      As a result once XRC QP/SRQ are created they must be used as well with
      UID=0 so that firmware will allow the XRCD usage.
      Signed-off-by: default avatarYishai Hadas <yishaih@mellanox.com>
      Reviewed-by: default avatarArtemy Kovalyov <artemyko@mellanox.com>
      Signed-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      5aa3771d
    • Yishai Hadas's avatar
      IB/mlx5: Update the supported DEVX commands · 719598c9
      Yishai Hadas authored
      Update the supported DEVX commands, it includes adding to the
      query/modify command's list and to the encoding handling.
      
      In addition, a valid range for general commands was added to be used for
      future commands.
      Signed-off-by: default avatarYishai Hadas <yishaih@mellanox.com>
      Reviewed-by: default avatarArtemy Kovalyov <artemyko@mellanox.com>
      Signed-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      719598c9
    • Yishai Hadas's avatar
      IB/mlx5: Enforce DEVX privilege by firmware · fb98153b
      Yishai Hadas authored
      Enforce DEVX privilege by firmware, this enables future device
      functionality without the need to make driver changes unless a new
      privilege type will be introduced.
      Signed-off-by: default avatarYishai Hadas <yishaih@mellanox.com>
      Reviewed-by: default avatarArtemy Kovalyov <artemyko@mellanox.com>
      Signed-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      fb98153b
    • Yishai Hadas's avatar
      IB/mlx5: Enable modify and query verbs objects via DEVX · 34613eb1
      Yishai Hadas authored
      Enables modify and query verbs objects via the DEVX interface.
      To support this the above DEVX handlers were changed to get any
      object type via the UVERBS_IDR_ANY_OBJECT mechanism.
      
      The type checking and handling is done per object as part of the
      driver code.
      Signed-off-by: default avatarYishai Hadas <yishaih@mellanox.com>
      Signed-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      34613eb1
    • Yishai Hadas's avatar
      IB/core: Enable getting an object type from a given uobject · 04ca16cc
      Yishai Hadas authored
      Enable getting an object type from a given uobject, the type is saved
      upon tree merging and is returned as part of some helper function.
      Signed-off-by: default avatarYishai Hadas <yishaih@mellanox.com>
      Signed-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      04ca16cc
    • Yishai Hadas's avatar
      IB/core: Introduce UVERBS_IDR_ANY_OBJECT · 4d7e8cc5
      Yishai Hadas authored
      Introduce the UVERBS_IDR_ANY_OBJECT type to match any IDR object.
      
      Once used, the infrastructure skips checking for the IDR type, it
      becomes the driver handler responsibility.
      
      This enables drivers to get in a given method an object from various of
      types.
      Signed-off-by: default avatarYishai Hadas <yishaih@mellanox.com>
      Signed-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      4d7e8cc5