mirror of
https://github.com/torvalds/linux.git
synced 2024-11-12 23:23:03 +00:00
2d5a333e09
The nvme fabric driver calls the nvme_tls_key_lookup() function from
nvmf_parse_key() when the keyring is enabled, but this is broken in a
configuration with CONFIG_NVME_FABRICS=y and CONFIG_NVME_TCP=m because
this leads to the function definition being in a loadable module:
x86_64-linux-ld: vmlinux.o: in function `nvmf_parse_key':
fabrics.c:(.text+0xb1bdec): undefined reference to `nvme_tls_key_lookup'
Move the 'select' up to CONFIG_NVME_FABRICS itself to force this
part to be built-in as well if needed.
Fixes: 5bc46b49c8
("nvme-tcp: check for invalidated or revoked key")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Keith Busch <kbusch@kernel.org>
131 lines
3.7 KiB
Plaintext
131 lines
3.7 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
config NVME_CORE
|
|
tristate
|
|
|
|
config BLK_DEV_NVME
|
|
tristate "NVM Express block device"
|
|
depends on PCI && BLOCK
|
|
select NVME_CORE
|
|
help
|
|
The NVM Express driver is for solid state drives directly
|
|
connected to the PCI or PCI Express bus. If you know you
|
|
don't have one of these, it is safe to answer N.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called nvme.
|
|
|
|
config NVME_MULTIPATH
|
|
bool "NVMe multipath support"
|
|
depends on NVME_CORE
|
|
help
|
|
This option enables support for multipath access to NVMe
|
|
subsystems. If this option is enabled only a single
|
|
/dev/nvmeXnY device will show up for each NVMe namespace,
|
|
even if it is accessible through multiple controllers.
|
|
|
|
config NVME_VERBOSE_ERRORS
|
|
bool "NVMe verbose error reporting"
|
|
depends on NVME_CORE
|
|
help
|
|
This option enables verbose reporting for NVMe errors. The
|
|
error translation table will grow the kernel image size by
|
|
about 4 KB.
|
|
|
|
config NVME_HWMON
|
|
bool "NVMe hardware monitoring"
|
|
depends on (NVME_CORE=y && HWMON=y) || (NVME_CORE=m && HWMON)
|
|
help
|
|
This provides support for NVMe hardware monitoring. If enabled,
|
|
a hardware monitoring device will be created for each NVMe drive
|
|
in the system.
|
|
|
|
config NVME_FABRICS
|
|
select NVME_CORE
|
|
select NVME_KEYRING if NVME_TCP_TLS
|
|
tristate
|
|
|
|
config NVME_RDMA
|
|
tristate "NVM Express over Fabrics RDMA host driver"
|
|
depends on INFINIBAND && INFINIBAND_ADDR_TRANS && BLOCK
|
|
select NVME_FABRICS
|
|
select SG_POOL
|
|
help
|
|
This provides support for the NVMe over Fabrics protocol using
|
|
the RDMA (Infiniband, RoCE, iWarp) transport. This allows you
|
|
to use remote block devices exported using the NVMe protocol set.
|
|
|
|
To configure a NVMe over Fabrics controller use the nvme-cli tool
|
|
from https://github.com/linux-nvme/nvme-cli.
|
|
|
|
If unsure, say N.
|
|
|
|
config NVME_FC
|
|
tristate "NVM Express over Fabrics FC host driver"
|
|
depends on BLOCK
|
|
depends on HAS_DMA
|
|
select NVME_FABRICS
|
|
select SG_POOL
|
|
help
|
|
This provides support for the NVMe over Fabrics protocol using
|
|
the FC transport. This allows you to use remote block devices
|
|
exported using the NVMe protocol set.
|
|
|
|
To configure a NVMe over Fabrics controller use the nvme-cli tool
|
|
from https://github.com/linux-nvme/nvme-cli.
|
|
|
|
If unsure, say N.
|
|
|
|
config NVME_TCP
|
|
tristate "NVM Express over Fabrics TCP host driver"
|
|
depends on INET
|
|
depends on BLOCK
|
|
select NVME_FABRICS
|
|
select CRYPTO
|
|
select CRYPTO_CRC32C
|
|
help
|
|
This provides support for the NVMe over Fabrics protocol using
|
|
the TCP transport. This allows you to use remote block devices
|
|
exported using the NVMe protocol set.
|
|
|
|
To configure a NVMe over Fabrics controller use the nvme-cli tool
|
|
from https://github.com/linux-nvme/nvme-cli.
|
|
|
|
If unsure, say N.
|
|
|
|
config NVME_TCP_TLS
|
|
bool "NVMe over Fabrics TCP TLS encryption support"
|
|
depends on NVME_TCP
|
|
select NET_HANDSHAKE
|
|
select KEYS
|
|
help
|
|
Enables TLS encryption for NVMe TCP using the netlink handshake API.
|
|
|
|
The TLS handshake daemon is availble at
|
|
https://github.com/oracle/ktls-utils.
|
|
|
|
If unsure, say N.
|
|
|
|
config NVME_HOST_AUTH
|
|
bool "NVMe over Fabrics In-Band Authentication in host side"
|
|
depends on NVME_CORE
|
|
select NVME_AUTH
|
|
select NVME_KEYRING if NVME_TCP_TLS
|
|
help
|
|
This provides support for NVMe over Fabrics In-Band Authentication in
|
|
host side.
|
|
|
|
If unsure, say N.
|
|
|
|
config NVME_APPLE
|
|
tristate "Apple ANS2 NVM Express host driver"
|
|
depends on OF && BLOCK
|
|
depends on APPLE_RTKIT && APPLE_SART
|
|
depends on ARCH_APPLE || COMPILE_TEST
|
|
select NVME_CORE
|
|
help
|
|
This provides support for the NVMe controller embedded in Apple SoCs
|
|
such as the M1.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called nvme-apple.
|