Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

# SPDX-License-Identifier: GPL-2.0-only
menuconfig CONFIG_INFINIBAND
	tristate "InfiniBand support"
	depends on CONFIG_HAS_IOMEM && CONFIG_HAS_DMA
	depends on CONFIG_NET
	depends on CONFIG_INET
	depends on m || CONFIG_IPV6 != m
	depends on !CONFIG_ALPHA
	select CONFIG_IRQ_POLL
	select CONFIG_DIMLIB
	---help---
	  Core support for InfiniBand (IB).  Make sure to also select
	  any protocols you wish to use as well as drivers for your
	  InfiniBand hardware.

if CONFIG_INFINIBAND

config CONFIG_INFINIBAND_USER_MAD
	tristate "InfiniBand userspace MAD support"
	depends on CONFIG_INFINIBAND
	---help---
	  Userspace InfiniBand Management Datagram (MAD) support.  This
	  is the kernel side of the userspace MAD support, which allows
	  userspace processes to send and receive MADs. You will also
	  need libibumad from rdma-core
	  <https://github.com/linux-rdma/rdma-core>.

config CONFIG_INFINIBAND_USER_ACCESS
	tristate "InfiniBand userspace access (verbs and CM)"
	depends on CONFIG_MMU
	---help---
	  Userspace InfiniBand access support.  This enables the
	  kernel side of userspace verbs and the userspace
	  communication manager (CM).  This allows userspace processes
	  to set up connections and directly access InfiniBand
	  hardware for fast-path operations.  You will also need
	  libibverbs, libibcm and a hardware driver library from
	  rdma-core <https://github.com/linux-rdma/rdma-core>.

config CONFIG_INFINIBAND_EXP_LEGACY_VERBS_NEW_UAPI
	bool "Allow experimental legacy verbs in new ioctl uAPI  (EXPERIMENTAL)"
	depends on CONFIG_INFINIBAND_USER_ACCESS
	---help---
	  IOCTL based uAPI support for Infiniband is enabled by default for
	  new verbs only. This allows userspace to invoke the IOCTL based uAPI
	  for current legacy verbs too.

config CONFIG_INFINIBAND_USER_MEM
	bool
	depends on CONFIG_INFINIBAND_USER_ACCESS != n
	depends on CONFIG_MMU
	default y

config CONFIG_INFINIBAND_ON_DEMAND_PAGING
	bool "InfiniBand on-demand paging support"
	depends on CONFIG_INFINIBAND_USER_MEM
	select CONFIG_MMU_NOTIFIER
	select CONFIG_INTERVAL_TREE
	default y
	---help---
	  On demand paging support for the InfiniBand subsystem.
	  Together with driver support this allows registration of
	  memory regions without pinning their pages, fetching the
	  pages on demand instead.

config CONFIG_INFINIBAND_ADDR_TRANS
	bool "RDMA/CM"
	depends on CONFIG_INFINIBAND
	default y
	---help---
	  Support for RDMA communication manager (CM).
	  This allows for a generic connection abstraction over RDMA.

config CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS
	bool
	depends on CONFIG_INFINIBAND_ADDR_TRANS && CONFIG_CONFIGFS_FS && !(CONFIG_INFINIBAND=y && CONFIG_CONFIGFS_FS=m)
	default y
	---help---
	  ConfigFS support for RDMA communication manager (CM).
	  This allows the user to config the default GID type that the CM
	  uses for each device, when initiaing new connections.

if CONFIG_INFINIBAND_USER_ACCESS || !CONFIG_INFINIBAND_USER_ACCESS
source "drivers/infiniband/hw/mthca/Kconfig"
source "drivers/infiniband/hw/qib/Kconfig"
source "drivers/infiniband/hw/cxgb3/Kconfig"
source "drivers/infiniband/hw/cxgb4/Kconfig"
source "drivers/infiniband/hw/efa/Kconfig"
source "drivers/infiniband/hw/i40iw/Kconfig"
source "drivers/infiniband/hw/mlx4/Kconfig"
source "drivers/infiniband/hw/mlx5/Kconfig"
source "drivers/infiniband/hw/ocrdma/Kconfig"
source "drivers/infiniband/hw/vmw_pvrdma/Kconfig"
source "drivers/infiniband/hw/usnic/Kconfig"
source "drivers/infiniband/hw/hns/Kconfig"
source "drivers/infiniband/hw/bnxt_re/Kconfig"
source "drivers/infiniband/hw/hfi1/Kconfig"
source "drivers/infiniband/hw/qedr/Kconfig"
source "drivers/infiniband/sw/rdmavt/Kconfig"
source "drivers/infiniband/sw/rxe/Kconfig"
source "drivers/infiniband/sw/siw/Kconfig"
endif

source "drivers/infiniband/ulp/ipoib/Kconfig"

source "drivers/infiniband/ulp/srp/Kconfig"
source "drivers/infiniband/ulp/srpt/Kconfig"

source "drivers/infiniband/ulp/iser/Kconfig"
source "drivers/infiniband/ulp/isert/Kconfig"

source "drivers/infiniband/ulp/opa_vnic/Kconfig"

endif # CONFIG_INFINIBAND