Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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 DMA_SHARED_BUFFER
10 select IRQ_POLL
11 select DIMLIB
12 help
13 Core support for InfiniBand (IB). Make sure to also select
14 any protocols you wish to use as well as drivers for your
15 InfiniBand hardware.
16
17if INFINIBAND
18
19config INFINIBAND_USER_MAD
20 tristate "InfiniBand userspace MAD support"
21 depends on INFINIBAND
22 help
23 Userspace InfiniBand Management Datagram (MAD) support. This
24 is the kernel side of the userspace MAD support, which allows
25 userspace processes to send and receive MADs. You will also
26 need libibumad from rdma-core
27 <https://github.com/linux-rdma/rdma-core>.
28
29config INFINIBAND_USER_ACCESS
30 tristate "InfiniBand userspace access (verbs and CM)"
31 depends on MMU
32 help
33 Userspace InfiniBand access support. This enables the
34 kernel side of userspace verbs and the userspace
35 communication manager (CM). This allows userspace processes
36 to set up connections and directly access InfiniBand
37 hardware for fast-path operations. You will also need
38 libibverbs, libibcm and a hardware driver library from
39 rdma-core <https://github.com/linux-rdma/rdma-core>.
40
41config INFINIBAND_USER_MEM
42 bool
43 depends on INFINIBAND_USER_ACCESS != n
44 depends on MMU
45 select DMA_SHARED_BUFFER
46 default y
47
48config INFINIBAND_ON_DEMAND_PAGING
49 bool "InfiniBand on-demand paging support"
50 depends on INFINIBAND_USER_MEM
51 select MMU_NOTIFIER
52 select INTERVAL_TREE
53 select HMM_MIRROR
54 default y
55 help
56 On demand paging support for the InfiniBand subsystem.
57 Together with driver support this allows registration of
58 memory regions without pinning their pages, fetching the
59 pages on demand instead.
60
61config INFINIBAND_ADDR_TRANS
62 bool "RDMA/CM"
63 depends on INFINIBAND
64 default y
65 help
66 Support for RDMA communication manager (CM).
67 This allows for a generic connection abstraction over RDMA.
68
69config INFINIBAND_ADDR_TRANS_CONFIGFS
70 bool
71 depends on INFINIBAND_ADDR_TRANS && CONFIGFS_FS && !(INFINIBAND=y && CONFIGFS_FS=m)
72 default y
73 help
74 ConfigFS support for RDMA communication manager (CM).
75 This allows the user to config the default GID type that the CM
76 uses for each device, when initiaing new connections.
77
78config INFINIBAND_VIRT_DMA
79 def_bool !HIGHMEM
80
81if INFINIBAND_USER_ACCESS || !INFINIBAND_USER_ACCESS
82if !UML
83source "drivers/infiniband/hw/bnxt_re/Kconfig"
84source "drivers/infiniband/hw/bng_re/Kconfig"
85source "drivers/infiniband/hw/cxgb4/Kconfig"
86source "drivers/infiniband/hw/efa/Kconfig"
87source "drivers/infiniband/hw/erdma/Kconfig"
88source "drivers/infiniband/hw/hfi1/Kconfig"
89source "drivers/infiniband/hw/hns/Kconfig"
90source "drivers/infiniband/hw/ionic/Kconfig"
91source "drivers/infiniband/hw/irdma/Kconfig"
92source "drivers/infiniband/hw/mana/Kconfig"
93source "drivers/infiniband/hw/mlx4/Kconfig"
94source "drivers/infiniband/hw/mlx5/Kconfig"
95source "drivers/infiniband/hw/mthca/Kconfig"
96source "drivers/infiniband/hw/ocrdma/Kconfig"
97source "drivers/infiniband/hw/qedr/Kconfig"
98source "drivers/infiniband/hw/usnic/Kconfig"
99source "drivers/infiniband/hw/vmw_pvrdma/Kconfig"
100source "drivers/infiniband/sw/rdmavt/Kconfig"
101endif # !UML
102source "drivers/infiniband/sw/rxe/Kconfig"
103source "drivers/infiniband/sw/siw/Kconfig"
104endif
105
106source "drivers/infiniband/ulp/ipoib/Kconfig"
107
108source "drivers/infiniband/ulp/srp/Kconfig"
109source "drivers/infiniband/ulp/srpt/Kconfig"
110
111source "drivers/infiniband/ulp/iser/Kconfig"
112source "drivers/infiniband/ulp/isert/Kconfig"
113source "drivers/infiniband/ulp/rtrs/Kconfig"
114
115source "drivers/infiniband/ulp/opa_vnic/Kconfig"
116
117endif # INFINIBAND