blob: 8ba41cbf18697d1045bd0b9f04c1f7bccc528497 [file] [log] [blame]
Thomas Gleixnerec8f24b2019-05-19 13:07:45 +01001# SPDX-License-Identifier: GPL-2.0-only
Jan Engelhardt06cc8502007-05-23 14:21:22 -07002menuconfig INFINIBAND
Linus Torvalds1da177e2005-04-16 15:20:36 -07003 tristate "InfiniBand support"
Geert Uytterhoevendb0acbc2017-11-19 19:58:30 +01004 depends on HAS_IOMEM && HAS_DMA
Roland Dreierb2cbae22011-05-20 11:46:11 -07005 depends on NET
Matan Barak2f85d242014-01-16 17:16:47 +02006 depends on INET
7 depends on m || IPV6 != m
Paul E. McKenneyadf90eb2017-11-27 09:04:22 -08008 depends on !ALPHA
Christoph Hellwig14d3a3b2015-12-11 11:53:03 -08009 select IRQ_POLL
Linus Torvalds1da177e2005-04-16 15:20:36 -070010 ---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
Jan Engelhardt06cc8502007-05-23 14:21:22 -070015if INFINIBAND
16
James Lentini17781cd2005-09-07 12:43:08 -070017config INFINIBAND_USER_MAD
18 tristate "InfiniBand userspace MAD support"
Roland Dreier2d927d62005-07-07 17:57:14 -070019 depends on INFINIBAND
20 ---help---
James Lentini17781cd2005-09-07 12:43:08 -070021 Userspace InfiniBand Management Datagram (MAD) support. This
22 is the kernel side of the userspace MAD support, which allows
Roland Dreier3cd96562006-09-22 15:22:46 -070023 userspace processes to send and receive MADs. You will also
Jason Gunthorpe46adb172018-02-02 14:35:29 -070024 need libibumad from rdma-core
25 <https://github.com/linux-rdma/rdma-core>.
James Lentini17781cd2005-09-07 12:43:08 -070026
27config INFINIBAND_USER_ACCESS
28 tristate "InfiniBand userspace access (verbs and CM)"
Jason Gunthorpe914e5d72018-09-28 15:20:23 -060029 depends on MMU
James Lentini17781cd2005-09-07 12:43:08 -070030 ---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
Jason Gunthorpe46adb172018-02-02 14:35:29 -070037 rdma-core <https://github.com/linux-rdma/rdma-core>.
Roland Dreier2d927d62005-07-07 17:57:14 -070038
Leon Romanovsky7a8690e2018-05-23 08:22:11 +030039config INFINIBAND_USER_ACCESS_UCM
Arnd Bergmann845b397a2018-08-21 16:20:44 +020040 tristate "Userspace CM (UCM, DEPRECATED)"
Jason Gunthorpe486edfb2018-08-13 20:04:37 -060041 depends on BROKEN || COMPILE_TEST
Leon Romanovsky7a8690e2018-05-23 08:22:11 +030042 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
Matan Barak185899e2018-03-19 15:02:40 +020050config INFINIBAND_EXP_LEGACY_VERBS_NEW_UAPI
51 bool "Allow experimental legacy verbs in new ioctl uAPI (EXPERIMENTAL)"
Matan Barak8eb19e82017-08-03 16:07:07 +030052 depends on INFINIBAND_USER_ACCESS
53 ---help---
Matan Barak185899e2018-03-19 15:02:40 +020054 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.
Matan Barak8eb19e82017-08-03 16:07:07 +030057
Roland Dreierf7c6a7b2007-03-04 16:15:11 -080058config INFINIBAND_USER_MEM
59 bool
60 depends on INFINIBAND_USER_ACCESS != n
Arnd Bergmann9cc12ad2017-10-06 09:13:46 +020061 depends on MMU
Roland Dreierf7c6a7b2007-03-04 16:15:11 -080062 default y
63
Sagi Grimberg860f10a2014-12-11 17:04:16 +020064config INFINIBAND_ON_DEMAND_PAGING
65 bool "InfiniBand on-demand paging support"
66 depends on INFINIBAND_USER_MEM
Haggai Eran882214e2014-12-11 17:04:18 +020067 select MMU_NOTIFIER
Sagi Grimberg860f10a2014-12-11 17:04:16 +020068 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
Sean Hefty7025fcd2006-06-17 20:37:28 -070075config INFINIBAND_ADDR_TRANS
Greg Thelenf7cb7b82018-04-26 11:19:35 -070076 bool "RDMA/CM"
Matan Barak2f85d242014-01-16 17:16:47 +020077 depends on INFINIBAND
Sean Hefty7025fcd2006-06-17 20:37:28 -070078 default y
Greg Thelenf7cb7b82018-04-26 11:19:35 -070079 ---help---
80 Support for RDMA communication manager (CM).
81 This allows for a generic connection abstraction over RDMA.
Sean Hefty7025fcd2006-06-17 20:37:28 -070082
Matan Barak045959d2015-12-23 14:56:55 +020083config 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
Shamir Rabinovitch6fa8f1a2019-01-09 11:15:15 +020092if INFINIBAND_USER_ACCESS || !INFINIBAND_USER_ACCESS
Linus Torvalds1da177e2005-04-16 15:20:36 -070093source "drivers/infiniband/hw/mthca/Kconfig"
Ralph Campbellf9315512010-05-23 21:44:54 -070094source "drivers/infiniband/hw/qib/Kconfig"
Steve Wiseb038ced2007-02-12 16:16:18 -080095source "drivers/infiniband/hw/cxgb3/Kconfig"
Steve Wisecfdda9d2010-04-21 15:30:06 -070096source "drivers/infiniband/hw/cxgb4/Kconfig"
Gal Pressmanf23afd72019-05-05 20:59:31 +030097source "drivers/infiniband/hw/efa/Kconfig"
Faisal Latif6e4de862016-01-20 13:40:16 -060098source "drivers/infiniband/hw/i40iw/Kconfig"
Roland Dreier225c7b12007-05-08 18:00:38 -070099source "drivers/infiniband/hw/mlx4/Kconfig"
Eli Cohene126ba92013-07-07 17:25:49 +0300100source "drivers/infiniband/hw/mlx5/Kconfig"
Glenn Streiff3c2d7742008-02-04 20:20:45 -0800101source "drivers/infiniband/hw/nes/Kconfig"
Parav Panditfe2caef2012-03-21 04:09:06 +0530102source "drivers/infiniband/hw/ocrdma/Kconfig"
Adit Ranadive29c8d9e2016-10-02 19:10:22 -0700103source "drivers/infiniband/hw/vmw_pvrdma/Kconfig"
Upinder Malhie3cf00d2013-09-10 03:38:16 +0000104source "drivers/infiniband/hw/usnic/Kconfig"
oulijun8793f772016-07-21 19:06:56 +0800105source "drivers/infiniband/hw/hns/Kconfig"
Shamir Rabinovitch6fa8f1a2019-01-09 11:15:15 +0200106source "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
Roland Dreier225c7b12007-05-08 18:00:38 -0700112
Linus Torvalds1da177e2005-04-16 15:20:36 -0700113source "drivers/infiniband/ulp/ipoib/Kconfig"
114
Roland Dreieraef9ec32005-11-02 14:07:13 -0800115source "drivers/infiniband/ulp/srp/Kconfig"
Bart Van Asschea42d9852011-10-14 01:30:46 +0000116source "drivers/infiniband/ulp/srpt/Kconfig"
Roland Dreieraef9ec32005-11-02 14:07:13 -0800117
Or Gerlitz3f1244a2006-05-11 10:03:30 +0300118source "drivers/infiniband/ulp/iser/Kconfig"
Nicholas Bellingerb8d26b32013-03-07 00:56:19 -0800119source "drivers/infiniband/ulp/isert/Kconfig"
Or Gerlitz3f1244a2006-05-11 10:03:30 +0300120
Vishwanathapura, Niranjana7d6f7282017-04-12 20:29:22 -0700121source "drivers/infiniband/ulp/opa_vnic/Kconfig"
Selvin Xavier592e8b32017-02-10 03:19:53 -0800122
Jan Engelhardt06cc8502007-05-23 14:21:22 -0700123endif # INFINIBAND