Re: [PATCH 08/12] lightnvm: implement get log report chunk helpers

From: Keith Busch
Date: Wed Mar 21 2018 - 10:34:12 EST


On Wed, Mar 21, 2018 at 03:06:05AM -0700, Matias Bjørling wrote:
> > outside of nvme core so that we can use it form lightnvm.
> >
> > Signed-off-by: Javier González <javier@xxxxxxxxxxxx>
> > ---
> > 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?

That's okay with me. Alteratively, if you want to split the generic nvme
part out, I can apply that immediately and the API will be in the first
nvme-4.17 pull request.