[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <8cd6a622-693a-f130-708d-eae517f26c78@synopsys.com>
Date: Mon, 28 May 2018 13:30:25 +0100
From: Ladvine D Almeida <Ladvine.DAlmeida@...opsys.com>
To: Jens Axboe <axboe@...nel.dk>, Hannes Reinecke <hare@...e.com>,
"Omar Sandoval" <osandov@...com>,
Johannes Thumshirn <jthumshirn@...e.de>,
"Sagi Grimberg" <sagi@...mberg.me>, Shaohua Li <shli@...com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Ming Lei <ming.lei@...hat.com>,
Bart Van Assche <bart.vanassche@....com>,
Keith Busch <keith.busch@...el.com>
CC: <linux-block@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
"Manjunath M Bettegowda <manjumb@...opsys.com>; Prabu Thangamuthu
<prabut@...opsys.com>; Tejas Joglekar" <Tejas.Joglekar@...opsys.com>
Subject: [PATCH 1/7] block: Add block level changes for inline encryption
This patch introduces new variable under bio structure to
facilitate inline encryption. This variable is used to
associate I/O requests to crypto information.
Signed-off-by: Ladvine D Almeida <ladvine@...opsys.com>
---
block/Kconfig | 13 +++++++++++++
block/bio.c | 6 ++++++
include/linux/blk_types.h | 3 +++
3 files changed, 22 insertions(+)
diff --git a/block/Kconfig b/block/Kconfig
index 28ec557..a48ecec 100644
--- a/block/Kconfig
+++ b/block/Kconfig
@@ -128,6 +128,19 @@ config BLK_DEV_THROTTLING_LOW
Note, this is an experimental interface and could be changed someday.
+config BLK_DEV_INLINE_ENCRYPTION
+ bool "Enable support for block device inline encryption"
+ default n
+ help
+ Enable block devices for Inline Encryption support.
+
+ This option is required to support the inline encryption capability
+ of the block device driver, including UFS Host Controller driver.
+ When the Inline Encryption feature is enabled in the block device
+ drivers, this option will be automatically enabled.
+
+ If unsure, say N.
+
config BLK_CMDLINE_PARSER
bool "Block device command line partition parser"
default n
diff --git a/block/bio.c b/block/bio.c
index 0a4df92..91aecf5 100644
--- a/block/bio.c
+++ b/block/bio.c
@@ -606,6 +606,9 @@ void __bio_clone_fast(struct bio *bio, struct bio *bio_src)
bio->bi_write_hint = bio_src->bi_write_hint;
bio->bi_iter = bio_src->bi_iter;
bio->bi_io_vec = bio_src->bi_io_vec;
+#ifdef CONFIG_BLK_DEV_INLINE_ENCRYPTION
+ bio->bi_ie_private = bio_src->bi_ie_private;
+#endif
bio_clone_blkcg_association(bio, bio_src);
}
@@ -690,6 +693,9 @@ struct bio *bio_clone_bioset(struct bio *bio_src, gfp_t gfp_mask,
bio->bi_write_hint = bio_src->bi_write_hint;
bio->bi_iter.bi_sector = bio_src->bi_iter.bi_sector;
bio->bi_iter.bi_size = bio_src->bi_iter.bi_size;
+#ifdef CONFIG_BLK_DEV_INLINE_ENCRYPTION
+ bio->bi_ie_private = bio_src->bi_ie_private;
+#endif
switch (bio_op(bio)) {
case REQ_OP_DISCARD:
diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h
index 4cb970c..11df096 100644
--- a/include/linux/blk_types.h
+++ b/include/linux/blk_types.h
@@ -183,6 +183,9 @@ struct bio {
void *bi_cg_private;
struct bio_issue bi_issue;
#endif
+#ifdef CONFIG_BLK_DEV_INLINE_ENCRYPTION
+ void *bi_ie_private;
+#endif
#endif
union {
#if defined(CONFIG_BLK_DEV_INTEGRITY)
--
2.7.4
Powered by blists - more mailing lists