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

From: Javier Gonzalez
Date: Wed Mar 21 2018 - 16:50:06 EST



> On 21 Mar 2018, at 20.27, Matias BjÃrling <mb@xxxxxxxxxxx> wrote:
>
>> On 03/21/2018 03:36 PM, Keith Busch wrote:
>> 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.
>
> Will do. I've sent the patch in another mail. Thanks! :)

Itâs fine with me.

Matias: do you take that part of the patch out directly on our tree?

Javier.