aboutsummaryrefslogtreecommitdiff
path: root/sys/modules
diff options
context:
space:
mode:
authorHans Petter Selasky <hselasky@FreeBSD.org>2021-06-16 13:02:00 +0000
committerHans Petter Selasky <hselasky@FreeBSD.org>2021-07-28 11:28:29 +0000
commitb633e08c705fe43180567eae26923d6f6f98c8d9 (patch)
tree93ab9ef5927af0b117fa672984d57e8bc4f6ce00 /sys/modules
parent273728b1257fa4f6c945bca592227e29763fc4a7 (diff)
ibcore: Kernel space update based on Linux 5.7-rc1.
Overview: This is the first stage of a RDMA stack upgrade introducing kernel changes only based on Linux 5.7-rc1. This patch is based on about four main areas of work: - Update of the IB uobjects system: - The memory holding so-called AH, CQ, PD, SRQ and UCONTEXT objects is now managed by ibcore. This also require some changes in the kernel verbs API. The updated verbs changes are typically about initialize and deinitialize objects, and remove allocation and free of memory. - Update of the uverbs IOCTL framework: - The parsing and handling of user-space commands has been completely refactored to integrate with the updated IB uobjects system. - Various changes and updates to the generic uverbs interfaces in device drivers including the new uAPI surface. - The mlx5_ib_devx.c in mlx5ib and related mlx5 core changes. Dependencies: - The mlx4ib driver code has been updated with the minimum changes needed. - The mlx5ib driver code has been updated with the minimum changes needed including DV support. Compatibility: - All user-space facing APIs are backwards compatible after this change. - All kernel-space facing RDMA APIs are backwards compatible after this change, with exception of ib_create_ah() and ib_destroy_ah() which takes a new flag. - The "ib_device_ops" structure exist, but only contains the driver ID and some structure sizes. Differences from Linux: - Infiniband drivers must use the INIT_IB_DEVICE_OPS() macro to set the sizes needed for allocating various IB objects, when adding IB device instances. Security: - PRIV_NET_RAW is needed to use raw ethernet transmit features. - PRIV_DRIVER is needed to use other privileged operations. Based on upstream Linux, Torvalds (5.7-rc1): 8632e9b5645bbc2331d21d892b0d6961c1a08429 MFC after: 1 week Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D31149 Sponsored by: NVIDIA Networking
Diffstat (limited to 'sys/modules')
-rw-r--r--sys/modules/ibcore/Makefile13
-rw-r--r--sys/modules/mlx5/Makefile1
-rw-r--r--sys/modules/mlx5en/Makefile1
-rw-r--r--sys/modules/mlx5fpga_tools/Makefile1
-rw-r--r--sys/modules/mlx5ib/Makefile1
-rw-r--r--sys/modules/mlxfw/Makefile1
6 files changed, 18 insertions, 0 deletions
diff --git a/sys/modules/ibcore/Makefile b/sys/modules/ibcore/Makefile
index ba1f65748117..00d7ed976416 100644
--- a/sys/modules/ibcore/Makefile
+++ b/sys/modules/ibcore/Makefile
@@ -8,6 +8,7 @@ SRCS= \
ib_cache.c \
ib_cm.c \
ib_cma.c \
+ ib_core_uverbs.c \
ib_cq.c \
ib_device.c \
ib_fmr_pool.c \
@@ -18,6 +19,7 @@ SRCS= \
ib_mad_rmpp.c \
ib_multicast.c \
ib_packer.c \
+ ib_rdma_core.c \
ib_roce_gid_mgmt.c \
ib_sa_query.c \
ib_smi.c \
@@ -28,9 +30,20 @@ SRCS= \
ib_umem.c \
ib_user_mad.c \
ib_uverbs_cmd.c \
+ ib_uverbs_ioctl.c \
ib_uverbs_main.c \
ib_uverbs_marshall.c \
+ ib_uverbs_std_types.c \
+ ib_uverbs_std_types_async_fd.c \
+ ib_uverbs_std_types_counters.c \
+ ib_uverbs_std_types_cq.c \
+ ib_uverbs_std_types_device.c \
+ ib_uverbs_std_types_dm.c \
+ ib_uverbs_std_types_flow_action.c \
+ ib_uverbs_std_types_mr.c \
+ ib_uverbs_uapi.c \
ib_verbs.c
+
SRCS+= ${LINUXKPI_GENSRCS}
SRCS+= opt_inet.h opt_inet6.h
diff --git a/sys/modules/mlx5/Makefile b/sys/modules/mlx5/Makefile
index 26b46f8efdbd..aa07fb82a25d 100644
--- a/sys/modules/mlx5/Makefile
+++ b/sys/modules/mlx5/Makefile
@@ -38,6 +38,7 @@ SRCS+= ${LINUXKPI_GENSRCS}
SRCS+= opt_inet.h opt_inet6.h opt_rss.h opt_ratelimit.h
CFLAGS+= -I${SRCTOP}/sys/ofed/include
+CFLAGS+= -I${SRCTOP}/sys/ofed/include/uapi
CFLAGS+= -I${SRCTOP}/sys/compat/linuxkpi/common/include
.if defined(CONFIG_BUILD_FPGA)
diff --git a/sys/modules/mlx5en/Makefile b/sys/modules/mlx5en/Makefile
index 8ecf2c77f117..a9bbdb29e968 100644
--- a/sys/modules/mlx5en/Makefile
+++ b/sys/modules/mlx5en/Makefile
@@ -29,6 +29,7 @@ CFLAGS+= -DCONFIG_MLX5_FPGA
.endif
CFLAGS+= -I${SRCTOP}/sys/ofed/include
+CFLAGS+= -I${SRCTOP}/sys/ofed/include/uapi
CFLAGS+= -I${SRCTOP}/sys/compat/linuxkpi/common/include
.include <bsd.kmod.mk>
diff --git a/sys/modules/mlx5fpga_tools/Makefile b/sys/modules/mlx5fpga_tools/Makefile
index 23ae912589e2..1fe938862b38 100644
--- a/sys/modules/mlx5fpga_tools/Makefile
+++ b/sys/modules/mlx5fpga_tools/Makefile
@@ -10,6 +10,7 @@ SRCS+= ${LINUXKPI_GENSRCS}
SRCS+= opt_inet.h opt_inet6.h opt_rss.h opt_ratelimit.h
CFLAGS+= -I${SRCTOP}/sys/ofed/include
+CFLAGS+= -I${SRCTOP}/sys/ofed/include/uapi
CFLAGS+= -I${SRCTOP}/sys/compat/linuxkpi/common/include
.include <bsd.kmod.mk>
diff --git a/sys/modules/mlx5ib/Makefile b/sys/modules/mlx5ib/Makefile
index af0a1eb08b15..28ebbe19e0a6 100644
--- a/sys/modules/mlx5ib/Makefile
+++ b/sys/modules/mlx5ib/Makefile
@@ -6,6 +6,7 @@ SRCS= \
mlx5_ib_ah.c \
mlx5_ib_cong.c \
mlx5_ib_cq.c \
+mlx5_ib_devx.c \
mlx5_ib_doorbell.c \
mlx5_ib_gsi.c \
mlx5_ib_mad.c \
diff --git a/sys/modules/mlxfw/Makefile b/sys/modules/mlxfw/Makefile
index 98817b3954b9..1facd983fd3d 100644
--- a/sys/modules/mlxfw/Makefile
+++ b/sys/modules/mlxfw/Makefile
@@ -10,6 +10,7 @@ SRCS+= ${LINUXKPI_GENSRCS}
CFLAGS+= \
-I${SRCTOP}/sys/ofed/include \
+ -I${SRCTOP}/sys/ofed/include/uapi \
-I${SRCTOP}/sys/compat/linuxkpi/common/include \
-I${SRCTOP}/sys/contrib/xz-embedded/freebsd \
-I${SRCTOP}/sys/contrib/xz-embedded/linux/lib/xz