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