Messages in this thread | | | Subject | Re: [PATCH 08/12] lightnvm: implement get log report chunk helpers | From | Matias Bjørling <> | Date | Wed, 21 Mar 2018 11:06:05 +0100 |
| |
On 03/02/2018 04:21 PM, Javier González wrote: > The 2.0 spec provides a report chunk log page that can be retrieved > using the stangard nvme get log page. This replaces the dedicated > get/put bad block table in 1.2. > > This patch implements the helper functions to allow targets retrieve the > chunk metadata using get log page. It makes nvme_get_log_ext available > outside of nvme core so that we can use it form lightnvm. > > Signed-off-by: Javier González <javier@cnexlabs.com> > --- > drivers/lightnvm/core.c | 11 +++++++ > drivers/nvme/host/core.c | 6 ++-- > drivers/nvme/host/lightnvm.c | 74 ++++++++++++++++++++++++++++++++++++++++++++ > drivers/nvme/host/nvme.h | 3 ++ > include/linux/lightnvm.h | 24 ++++++++++++++ > 5 files changed, 115 insertions(+), 3 deletions(-) > > diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c > index 2e9e9f973a75..af642ce6ba69 100644 > --- a/drivers/nvme/host/core.c > +++ b/drivers/nvme/host/core.c > @@ -2127,9 +2127,9 @@ static int nvme_init_subsystem(struct nvme_ctrl *ctrl, struct nvme_id_ctrl *id) > return ret; > } > > -static int nvme_get_log_ext(struct nvme_ctrl *ctrl, struct nvme_ns *ns, > - u8 log_page, void *log, > - size_t size, size_t offset) > +int nvme_get_log_ext(struct nvme_ctrl *ctrl, struct nvme_ns *ns, > + u8 log_page, void *log, > + size_t size, size_t offset) > { > struct nvme_command c = { }; > unsigned long dwlen = size / 4 - 1; > diff --git a/drivers/nvme/host/lightnvm.c b/drivers/nvme/host/lightnvm.c > index 08f0f6b5bc06..ffd64a83c8c3 100644 > --- a/drivers/nvme/host/lightnvm.c > +++ b/drivers/nvme/host/lightnvm.c > @@ -35,6 +35,10 @@ enum nvme_nvm_admin_opcode { > nvme_nvm_admin_set_bb_tbl = 0xf1, > }; >
<snip>
> > diff --git a/drivers/nvme/host/nvme.h b/drivers/nvme/host/nvme.h > index 1ca08f4993ba..505f797f8c6c 100644 > --- a/drivers/nvme/host/nvme.h > +++ b/drivers/nvme/host/nvme.h > @@ -396,6 +396,9 @@ int nvme_reset_ctrl(struct nvme_ctrl *ctrl); > int nvme_delete_ctrl(struct nvme_ctrl *ctrl); > int nvme_delete_ctrl_sync(struct nvme_ctrl *ctrl); > > +int nvme_get_log_ext(struct nvme_ctrl *ctrl, struct nvme_ns *ns, > + u8 log_page, void *log, size_t size, size_t offset); > + > extern const struct attribute_group nvme_ns_id_attr_group; > extern const struct block_device_operations nvme_ns_head_ops; >
Keith, Christoph, Sagi, Is it okay that these two changes that exposes the nvme_get_log_ext fn are carried through Jens' tree after the nvme tree for 4.17 has been pulled?
| |