|  | # 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/ionic/Kconfig" | 
|  | source "drivers/infiniband/hw/irdma/Kconfig" | 
|  | source "drivers/infiniband/hw/mana/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/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 |