Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3085e29e authored by Leon Romanovsky's avatar Leon Romanovsky Committed by Doug Ledford
Browse files

IB/mlx5: Move and decouple user vendor structures



This patch decouples and moves vendors specific structures to
common UAPI folder which will be visible to all consumers.

These structures are used by user-space library driver
(libmlx5) and currently manually copied to that library.

This move will allow cross-compile against these files and
simplify introduction of vendor specific data.

Signed-off-by: default avatarLeon Romanovsky <leon@kernel.org>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent bd99fdea
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -7819,6 +7819,7 @@ Q: http://patchwork.ozlabs.org/project/netdev/list/
S:	Supported
S:	Supported
F:	drivers/net/ethernet/mellanox/mlx5/core/
F:	drivers/net/ethernet/mellanox/mlx5/core/
F:	include/linux/mlx5/
F:	include/linux/mlx5/
F:	include/uapi/rdma/mlx5-abi.h


MELLANOX MLX5 IB driver
MELLANOX MLX5 IB driver
M:	Matan Barak <matanb@mellanox.com>
M:	Matan Barak <matanb@mellanox.com>
+0 −1
Original line number Original line Diff line number Diff line
@@ -35,7 +35,6 @@
#include <rdma/ib_user_verbs.h>
#include <rdma/ib_user_verbs.h>
#include <rdma/ib_cache.h>
#include <rdma/ib_cache.h>
#include "mlx5_ib.h"
#include "mlx5_ib.h"
#include "user.h"


static void mlx5_ib_cq_comp(struct mlx5_core_cq *cq)
static void mlx5_ib_cq_comp(struct mlx5_core_cq *cq)
{
{
+0 −1
Original line number Original line Diff line number Diff line
@@ -54,7 +54,6 @@
#include <linux/in.h>
#include <linux/in.h>
#include <linux/etherdevice.h>
#include <linux/etherdevice.h>
#include <linux/mlx5/fs.h>
#include <linux/mlx5/fs.h>
#include "user.h"
#include "mlx5_ib.h"
#include "mlx5_ib.h"


#define DRIVER_NAME "mlx5_ib"
#define DRIVER_NAME "mlx5_ib"
+37 −0
Original line number Original line Diff line number Diff line
@@ -44,6 +44,7 @@
#include <linux/types.h>
#include <linux/types.h>
#include <linux/mlx5/transobj.h>
#include <linux/mlx5/transobj.h>
#include <rdma/ib_user_verbs.h>
#include <rdma/ib_user_verbs.h>
#include <rdma/mlx5-abi.h>


#define mlx5_ib_dbg(dev, format, arg...)				\
#define mlx5_ib_dbg(dev, format, arg...)				\
pr_debug("%s:%s:%d:(pid %d): " format, (dev)->ib_dev.name, __func__,	\
pr_debug("%s:%s:%d:(pid %d): " format, (dev)->ib_dev.name, __func__,	\
@@ -955,4 +956,40 @@ static inline int verify_assign_uidx(u8 cqe_version, u32 cmd_uidx,


	return 0;
	return 0;
}
}

static inline int get_qp_user_index(struct mlx5_ib_ucontext *ucontext,
				    struct mlx5_ib_create_qp *ucmd,
				    int inlen,
				    u32 *user_index)
{
	u8 cqe_version = ucontext->cqe_version;

	if (field_avail(struct mlx5_ib_create_qp, uidx, inlen) &&
	    !cqe_version && (ucmd->uidx == MLX5_IB_DEFAULT_UIDX))
		return 0;

	if (!!(field_avail(struct mlx5_ib_create_qp, uidx, inlen) !=
	       !!cqe_version))
		return -EINVAL;

	return verify_assign_uidx(cqe_version, ucmd->uidx, user_index);
}

static inline int get_srq_user_index(struct mlx5_ib_ucontext *ucontext,
				     struct mlx5_ib_create_srq *ucmd,
				     int inlen,
				     u32 *user_index)
{
	u8 cqe_version = ucontext->cqe_version;

	if (field_avail(struct mlx5_ib_create_srq, uidx, inlen) &&
	    !cqe_version && (ucmd->uidx == MLX5_IB_DEFAULT_UIDX))
		return 0;

	if (!!(field_avail(struct mlx5_ib_create_srq, uidx, inlen) !=
	       !!cqe_version))
		return -EINVAL;

	return verify_assign_uidx(cqe_version, ucmd->uidx, user_index);
}
#endif /* MLX5_IB_H */
#endif /* MLX5_IB_H */
+0 −1
Original line number Original line Diff line number Diff line
@@ -40,7 +40,6 @@
#include <rdma/ib_umem_odp.h>
#include <rdma/ib_umem_odp.h>
#include <rdma/ib_verbs.h>
#include <rdma/ib_verbs.h>
#include "mlx5_ib.h"
#include "mlx5_ib.h"
#include "user.h"


enum {
enum {
	MAX_PENDING_REG_MR = 8,
	MAX_PENDING_REG_MR = 8,
Loading