All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] block: Allow t10-pi to be modular
@ 2019-12-23  8:13 Herbert Xu
  2020-01-07  3:25 ` Martin K. Petersen
  2020-01-08 13:39 ` Christoph Hellwig
  0 siblings, 2 replies; 4+ messages in thread
From: Herbert Xu @ 2019-12-23  8:13 UTC (permalink / raw)
  To: linux-block, Jens Axboe, Martin K. Petersen, Christoph Hellwig

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>

diff --git a/block/Kconfig b/block/Kconfig
index c23094a14a2b..3bc76bb113a0 100644
--- a/block/Kconfig
+++ b/block/Kconfig
@@ -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
diff --git a/block/Makefile b/block/Makefile
index 205a5f2fef17..f6cef6d4363c 100644
--- a/block/Makefile
+++ b/block/Makefile
@@ -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
diff --git a/block/t10-pi.c b/block/t10-pi.c
index f4907d941f03..d910534b3a41 100644
--- a/block/t10-pi.c
+++ b/block/t10-pi.c
@@ -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");
diff --git a/drivers/nvme/host/Kconfig b/drivers/nvme/host/Kconfig
index c6439638a419..b9358db83e96 100644
--- a/drivers/nvme/host/Kconfig
+++ b/drivers/nvme/host/Kconfig
@@ -1,6 +1,7 @@
 # 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"
diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig
index 90cf4691b8c3..a7881f8eb05e 100644
--- a/drivers/scsi/Kconfig
+++ b/drivers/scsi/Kconfig
@@ -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,
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] block: Allow t10-pi to be modular
  2019-12-23  8:13 [PATCH] block: Allow t10-pi to be modular Herbert Xu
@ 2020-01-07  3:25 ` Martin K. Petersen
  2020-01-07  3:59   ` Jens Axboe
  2020-01-08 13:39 ` Christoph Hellwig
  1 sibling, 1 reply; 4+ messages in thread
From: Martin K. Petersen @ 2020-01-07  3:25 UTC (permalink / raw)
  To: Herbert Xu; +Cc: linux-block, Jens Axboe, Martin K. Petersen, Christoph Hellwig


Herbert,

> 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.

Looks fine to me.

-- 
Martin K. Petersen	Oracle Linux Engineering

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] block: Allow t10-pi to be modular
  2020-01-07  3:25 ` Martin K. Petersen
@ 2020-01-07  3:59   ` Jens Axboe
  0 siblings, 0 replies; 4+ messages in thread
From: Jens Axboe @ 2020-01-07  3:59 UTC (permalink / raw)
  To: Martin K. Petersen, Herbert Xu; +Cc: linux-block, Christoph Hellwig

On 1/6/20 8:25 PM, Martin K. Petersen wrote:
> 
> Herbert,
> 
>> 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.
> 
> Looks fine to me.
> 

I added it to the 5.6 mix, thanks.

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] block: Allow t10-pi to be modular
  2019-12-23  8:13 [PATCH] block: Allow t10-pi to be modular Herbert Xu
  2020-01-07  3:25 ` Martin K. Petersen
@ 2020-01-08 13:39 ` Christoph Hellwig
  1 sibling, 0 replies; 4+ messages in thread
From: Christoph Hellwig @ 2020-01-08 13:39 UTC (permalink / raw)
  To: Herbert Xu; +Cc: linux-block, Jens Axboe, Martin K. Petersen

On Mon, Dec 23, 2019 at 04:13:51PM +0800, Herbert Xu wrote:
> 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>

Looks good,

Reviewed-by: Christoph Hellwig <hch@lst.de>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-01-08 13:39 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-23  8:13 [PATCH] block: Allow t10-pi to be modular Herbert Xu
2020-01-07  3:25 ` Martin K. Petersen
2020-01-07  3:59   ` Jens Axboe
2020-01-08 13:39 ` Christoph Hellwig

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.