1# SPDX-License-Identifier: GPL-2.0-only 2menuconfig INFINIBAND 3 tristate "InfiniBand support" 4 depends on HAS_IOMEM && HAS_DMA 5 depends on NET 6 depends on INET 7 depends on m || IPV6 != m 8 depends on !ALPHA 9 select IRQ_POLL 10 ---help--- 11 Core support for InfiniBand (IB). Make sure to also select 12 any protocols you wish to use as well as drivers for your 13 InfiniBand hardware. 14 15if INFINIBAND 16 17config INFINIBAND_USER_MAD 18 tristate "InfiniBand userspace MAD support" 19 depends on INFINIBAND 20 ---help--- 21 Userspace InfiniBand Management Datagram (MAD) support. This 22 is the kernel side of the userspace MAD support, which allows 23 userspace processes to send and receive MADs. You will also 24 need libibumad from rdma-core 25 <https://github.com/linux-rdma/rdma-core>. 26 27config INFINIBAND_USER_ACCESS 28 tristate "InfiniBand userspace access (verbs and CM)" 29 depends on MMU 30 ---help--- 31 Userspace InfiniBand access support. This enables the 32 kernel side of userspace verbs and the userspace 33 communication manager (CM). This allows userspace processes 34 to set up connections and directly access InfiniBand 35 hardware for fast-path operations. You will also need 36 libibverbs, libibcm and a hardware driver library from 37 rdma-core <https://github.com/linux-rdma/rdma-core>. 38 39config INFINIBAND_USER_ACCESS_UCM 40 tristate "Userspace CM (UCM, DEPRECATED)" 41 depends on BROKEN || COMPILE_TEST 42 depends on INFINIBAND_USER_ACCESS 43 help 44 The UCM module has known security flaws, which no one is 45 interested to fix. The user-space part of this code was 46 dropped from the upstream a long time ago. 47 48 This option is DEPRECATED and planned to be removed. 49 50config INFINIBAND_EXP_LEGACY_VERBS_NEW_UAPI 51 bool "Allow experimental legacy verbs in new ioctl uAPI (EXPERIMENTAL)" 52 depends on INFINIBAND_USER_ACCESS 53 ---help--- 54 IOCTL based uAPI support for Infiniband is enabled by default for 55 new verbs only. This allows userspace to invoke the IOCTL based uAPI 56 for current legacy verbs too. 57 58config INFINIBAND_USER_MEM 59 bool 60 depends on INFINIBAND_USER_ACCESS != n 61 depends on MMU 62 default y 63 64config INFINIBAND_ON_DEMAND_PAGING 65 bool "InfiniBand on-demand paging support" 66 depends on INFINIBAND_USER_MEM 67 select MMU_NOTIFIER 68 default y 69 ---help--- 70 On demand paging support for the InfiniBand subsystem. 71 Together with driver support this allows registration of 72 memory regions without pinning their pages, fetching the 73 pages on demand instead. 74 75config INFINIBAND_ADDR_TRANS 76 bool "RDMA/CM" 77 depends on INFINIBAND 78 default y 79 ---help--- 80 Support for RDMA communication manager (CM). 81 This allows for a generic connection abstraction over RDMA. 82 83config INFINIBAND_ADDR_TRANS_CONFIGFS 84 bool 85 depends on INFINIBAND_ADDR_TRANS && CONFIGFS_FS && !(INFINIBAND=y && CONFIGFS_FS=m) 86 default y 87 ---help--- 88 ConfigFS support for RDMA communication manager (CM). 89 This allows the user to config the default GID type that the CM 90 uses for each device, when initiaing new connections. 91 92if INFINIBAND_USER_ACCESS || !INFINIBAND_USER_ACCESS 93source "drivers/infiniband/hw/mthca/Kconfig" 94source "drivers/infiniband/hw/qib/Kconfig" 95source "drivers/infiniband/hw/cxgb3/Kconfig" 96source "drivers/infiniband/hw/cxgb4/Kconfig" 97source "drivers/infiniband/hw/efa/Kconfig" 98source "drivers/infiniband/hw/i40iw/Kconfig" 99source "drivers/infiniband/hw/mlx4/Kconfig" 100source "drivers/infiniband/hw/mlx5/Kconfig" 101source "drivers/infiniband/hw/nes/Kconfig" 102source "drivers/infiniband/hw/ocrdma/Kconfig" 103source "drivers/infiniband/hw/vmw_pvrdma/Kconfig" 104source "drivers/infiniband/hw/usnic/Kconfig" 105source "drivers/infiniband/hw/hns/Kconfig" 106source "drivers/infiniband/hw/bnxt_re/Kconfig" 107source "drivers/infiniband/hw/hfi1/Kconfig" 108source "drivers/infiniband/hw/qedr/Kconfig" 109source "drivers/infiniband/sw/rdmavt/Kconfig" 110source "drivers/infiniband/sw/rxe/Kconfig" 111endif 112 113source "drivers/infiniband/ulp/ipoib/Kconfig" 114 115source "drivers/infiniband/ulp/srp/Kconfig" 116source "drivers/infiniband/ulp/srpt/Kconfig" 117 118source "drivers/infiniband/ulp/iser/Kconfig" 119source "drivers/infiniband/ulp/isert/Kconfig" 120 121source "drivers/infiniband/ulp/opa_vnic/Kconfig" 122 123endif # INFINIBAND 124