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: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
Родитель
95ed0c5b12
Коммит
a754bd5f18
|
@ -66,7 +66,6 @@ config BLK_DEV_BSGLIB
|
||||||
|
|
||||||
config BLK_DEV_INTEGRITY
|
config BLK_DEV_INTEGRITY
|
||||||
bool "Block layer data integrity support"
|
bool "Block layer data integrity support"
|
||||||
select CRC_T10DIF if BLK_DEV_INTEGRITY
|
|
||||||
---help---
|
---help---
|
||||||
Some storage devices allow extra information to be
|
Some storage devices allow extra information to be
|
||||||
stored/retrieved to help protect the data. The block layer
|
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
|
T10/SCSI Data Integrity Field or the T13/ATA External Path
|
||||||
Protection. If in doubt, say N.
|
Protection. If in doubt, say N.
|
||||||
|
|
||||||
|
config BLK_DEV_INTEGRITY_T10
|
||||||
|
tristate
|
||||||
|
depends on BLK_DEV_INTEGRITY
|
||||||
|
select CRC_T10DIF
|
||||||
|
|
||||||
config BLK_DEV_ZONED
|
config BLK_DEV_ZONED
|
||||||
bool "Zoned block device support"
|
bool "Zoned block device support"
|
||||||
select MQ_IOSCHED_DEADLINE
|
select MQ_IOSCHED_DEADLINE
|
||||||
|
|
|
@ -27,7 +27,8 @@ obj-$(CONFIG_IOSCHED_BFQ) += bfq.o
|
||||||
|
|
||||||
obj-$(CONFIG_BLOCK_COMPAT) += compat_ioctl.o
|
obj-$(CONFIG_BLOCK_COMPAT) += compat_ioctl.o
|
||||||
obj-$(CONFIG_BLK_CMDLINE_PARSER) += cmdline-parser.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_PCI) += blk-mq-pci.o
|
||||||
obj-$(CONFIG_BLK_MQ_VIRTIO) += blk-mq-virtio.o
|
obj-$(CONFIG_BLK_MQ_VIRTIO) += blk-mq-virtio.o
|
||||||
obj-$(CONFIG_BLK_MQ_RDMA) += blk-mq-rdma.o
|
obj-$(CONFIG_BLK_MQ_RDMA) += blk-mq-rdma.o
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
#include <linux/t10-pi.h>
|
#include <linux/t10-pi.h>
|
||||||
#include <linux/blkdev.h>
|
#include <linux/blkdev.h>
|
||||||
#include <linux/crc-t10dif.h>
|
#include <linux/crc-t10dif.h>
|
||||||
|
#include <linux/module.h>
|
||||||
#include <net/checksum.h>
|
#include <net/checksum.h>
|
||||||
|
|
||||||
typedef __be16 (csum_fn) (void *, unsigned int);
|
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,
|
.complete_fn = t10_pi_type3_complete,
|
||||||
};
|
};
|
||||||
EXPORT_SYMBOL(t10_pi_type3_ip);
|
EXPORT_SYMBOL(t10_pi_type3_ip);
|
||||||
|
|
||||||
|
MODULE_LICENSE("GPL");
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0-only
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
config NVME_CORE
|
config NVME_CORE
|
||||||
tristate
|
tristate
|
||||||
|
select BLK_DEV_INTEGRITY_T10 if BLK_DEV_INTEGRITY
|
||||||
|
|
||||||
config BLK_DEV_NVME
|
config BLK_DEV_NVME
|
||||||
tristate "NVM Express block device"
|
tristate "NVM Express block device"
|
||||||
|
|
|
@ -68,6 +68,7 @@ comment "SCSI support type (disk, tape, CD-ROM)"
|
||||||
config BLK_DEV_SD
|
config BLK_DEV_SD
|
||||||
tristate "SCSI disk support"
|
tristate "SCSI disk support"
|
||||||
depends on SCSI
|
depends on SCSI
|
||||||
|
select BLK_DEV_INTEGRITY_T10 if BLK_DEV_INTEGRITY
|
||||||
---help---
|
---help---
|
||||||
If you want to use SCSI hard disks, Fibre Channel disks,
|
If you want to use SCSI hard disks, Fibre Channel disks,
|
||||||
Serial ATA (SATA) or Parallel ATA (PATA) hard disks,
|
Serial ATA (SATA) or Parallel ATA (PATA) hard disks,
|
||||||
|
|
Загрузка…
Ссылка в новой задаче