Commit a754bd5f authored by Herbert Xu's avatar Herbert Xu Committed by Jens Axboe
Browse files

block: Allow t10-pi to be modular



Currently t10-pi can only be built into the block layer which via
crc-t10dif pulls in a whole chunk of the Crypto API.  In fact all
users of t10-pi work as modules and there is no reason for it to
always be built-in.

This patch adds a new hidden option for t10-pi that is selected
automatically based on BLK_DEV_INTEGRITY and whether the users
of t10-pi are built-in or not.

Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 95ed0c5b
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -66,7 +66,6 @@ config BLK_DEV_BSGLIB

config BLK_DEV_INTEGRITY
	bool "Block layer data integrity support"
	select CRC_T10DIF if BLK_DEV_INTEGRITY
	---help---
	Some storage devices allow extra information to be
	stored/retrieved to help protect the data.  The block layer
@@ -77,6 +76,11 @@ config BLK_DEV_INTEGRITY
	T10/SCSI Data Integrity Field or the T13/ATA External Path
	Protection.  If in doubt, say N.

config BLK_DEV_INTEGRITY_T10
	tristate
	depends on BLK_DEV_INTEGRITY
	select CRC_T10DIF

config BLK_DEV_ZONED
	bool "Zoned block device support"
	select MQ_IOSCHED_DEADLINE
+2 −1
Original line number Diff line number Diff line
@@ -27,7 +27,8 @@ obj-$(CONFIG_IOSCHED_BFQ) += bfq.o

obj-$(CONFIG_BLOCK_COMPAT)	+= compat_ioctl.o
obj-$(CONFIG_BLK_CMDLINE_PARSER)	+= cmdline-parser.o
obj-$(CONFIG_BLK_DEV_INTEGRITY) += bio-integrity.o blk-integrity.o t10-pi.o
obj-$(CONFIG_BLK_DEV_INTEGRITY) += bio-integrity.o blk-integrity.o
obj-$(CONFIG_BLK_DEV_INTEGRITY_T10)	+= t10-pi.o
obj-$(CONFIG_BLK_MQ_PCI)	+= blk-mq-pci.o
obj-$(CONFIG_BLK_MQ_VIRTIO)	+= blk-mq-virtio.o
obj-$(CONFIG_BLK_MQ_RDMA)	+= blk-mq-rdma.o
+3 −0
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@
#include <linux/t10-pi.h>
#include <linux/blkdev.h>
#include <linux/crc-t10dif.h>
#include <linux/module.h>
#include <net/checksum.h>

typedef __be16 (csum_fn) (void *, unsigned int);
@@ -280,3 +281,5 @@ const struct blk_integrity_profile t10_pi_type3_ip = {
	.complete_fn		= t10_pi_type3_complete,
};
EXPORT_SYMBOL(t10_pi_type3_ip);

MODULE_LICENSE("GPL");
+1 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only
config NVME_CORE
	tristate
	select BLK_DEV_INTEGRITY_T10 if BLK_DEV_INTEGRITY

config BLK_DEV_NVME
	tristate "NVM Express block device"
+1 −0
Original line number Diff line number Diff line
@@ -68,6 +68,7 @@ comment "SCSI support type (disk, tape, CD-ROM)"
config BLK_DEV_SD
	tristate "SCSI disk support"
	depends on SCSI
	select BLK_DEV_INTEGRITY_T10 if BLK_DEV_INTEGRITY
	---help---
	  If you want to use SCSI hard disks, Fibre Channel disks,
	  Serial ATA (SATA) or Parallel ATA (PATA) hard disks,