lightnvm: enable metadata to be sent to device
authorJavier González <javier@cnexlabs.com>
Fri, 6 May 2016 18:03:12 +0000 (20:03 +0200)
committerJens Axboe <axboe@fb.com>
Fri, 6 May 2016 18:51:10 +0000 (12:51 -0600)
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>
drivers/nvme/host/lightnvm.c
include/linux/lightnvm.h

index d426d95..69a47fb 100644 (file)
@@ -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);
 
index af72ca7..678df4d 100644 (file)
@@ -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;