| # SPDX-License-Identifier: GPL-2.0-only |
| menuconfig INFINIBAND |
| tristate "InfiniBand support" |
| depends on HAS_IOMEM && HAS_DMA |
| depends on NET |
| depends on INET |
| depends on m || IPV6 != m |
| depends on !ALPHA |
| select IRQ_POLL |
| select 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 INFINIBAND |
| |
| config INFINIBAND_USER_MAD |
| tristate "InfiniBand userspace MAD support" |
| depends on 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 INFINIBAND_USER_ACCESS |
| tristate "InfiniBand userspace access (verbs and CM)" |
| depends on 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 INFINIBAND_USER_MEM |
| bool |
| depends on INFINIBAND_USER_ACCESS != n |
| depends on MMU |
| select DMA_SHARED_BUFFER |
| default y |
| |
| config INFINIBAND_ON_DEMAND_PAGING |
| bool "InfiniBand on-demand paging support" |
| depends on INFINIBAND_USER_MEM |
| select MMU_NOTIFIER |
| select INTERVAL_TREE |
| select HMM_MIRROR |
| 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 INFINIBAND_ADDR_TRANS |
| bool "RDMA/CM" |
| depends on INFINIBAND |
| default y |
| help |
| Support for RDMA communication manager (CM). |
| This allows for a generic connection abstraction over RDMA. |
| |
| config INFINIBAND_ADDR_TRANS_CONFIGFS |
| bool |
| depends on INFINIBAND_ADDR_TRANS && CONFIGFS_FS && !(INFINIBAND=y && 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. |
| |
| config INFINIBAND_VIRT_DMA |
| def_bool !HIGHMEM |
| |
| if INFINIBAND_USER_ACCESS || !INFINIBAND_USER_ACCESS |
| if !UML |
| source "drivers/infiniband/hw/bnxt_re/Kconfig" |
| source "drivers/infiniband/hw/cxgb4/Kconfig" |
| source "drivers/infiniband/hw/efa/Kconfig" |
| source "drivers/infiniband/hw/erdma/Kconfig" |
| source "drivers/infiniband/hw/hfi1/Kconfig" |
| source "drivers/infiniband/hw/hns/Kconfig" |
| source "drivers/infiniband/hw/irdma/Kconfig" |
| source "drivers/infiniband/hw/mlx4/Kconfig" |
| source "drivers/infiniband/hw/mlx5/Kconfig" |
| source "drivers/infiniband/hw/mthca/Kconfig" |
| source "drivers/infiniband/hw/ocrdma/Kconfig" |
| source "drivers/infiniband/hw/qedr/Kconfig" |
| source "drivers/infiniband/hw/qib/Kconfig" |
| source "drivers/infiniband/hw/usnic/Kconfig" |
| source "drivers/infiniband/hw/vmw_pvrdma/Kconfig" |
| source "drivers/infiniband/sw/rdmavt/Kconfig" |
| endif # !UML |
| 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/rtrs/Kconfig" |
| |
| source "drivers/infiniband/ulp/opa_vnic/Kconfig" |
| |
| endif # INFINIBAND |