summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJavier González <javier@cnexlabs.com>2016-05-06 20:03:12 +0200
committerJens Axboe <axboe@fb.com>2016-05-06 12:51:10 -0600
commit003fad376b924fc3a61c659f38da70356ec144fa (patch)
tree459eee86dc024eeba9571cd7495a665b061060d0
parent57682b49154921306a5e7b79c883781230698878 (diff)
lightnvm: enable metadata to be sent to device
Enable metadata buffer to be sent to the device through the metadata field on the physical rw nvme command. The size of the metadata buffer must follow dev->oob_size * # of PPAs. Signed-off-by: Javier González <javier@cnexlabs.com> Updated description. Signed-off-by: Matias Bjørling <m@bjorling.me> Signed-off-by: Jens Axboe <axboe@fb.com>
-rw-r--r--drivers/nvme/host/lightnvm.c1
-rw-r--r--include/linux/lightnvm.h4
2 files changed, 3 insertions, 2 deletions
diff --git a/drivers/nvme/host/lightnvm.c b/drivers/nvme/host/lightnvm.c
index d426d95c9eaa..69a47fb2b6e3 100644
--- a/drivers/nvme/host/lightnvm.c
+++ b/drivers/nvme/host/lightnvm.c
@@ -467,6 +467,7 @@ static inline void nvme_nvm_rqtocmd(struct request *rq, struct nvm_rq *rqd,
c->ph_rw.opcode = rqd->opcode;
c->ph_rw.nsid = cpu_to_le32(ns->ns_id);
c->ph_rw.spba = cpu_to_le64(rqd->ppa_addr.ppa);
+ c->ph_rw.metadata = cpu_to_le64(rqd->meta_list);
c->ph_rw.control = cpu_to_le16(rqd->flags);
c->ph_rw.length = cpu_to_le16(rqd->nr_pages - 1);
diff --git a/include/linux/lightnvm.h b/include/linux/lightnvm.h
index af72ca75dced..678df4d4354d 100644
--- a/include/linux/lightnvm.h
+++ b/include/linux/lightnvm.h
@@ -230,8 +230,8 @@ struct nvm_rq {
struct ppa_addr *ppa_list;
- void *metadata;
- dma_addr_t dma_metadata;
+ void *meta_list;
+ dma_addr_t dma_meta_list;
struct completion *wait;
nvm_end_io_fn *end_io;