[PATCH-RFC 2/5] nvme: tcp: split controller bringup handling
Hannes Reinecke
hare at suse.de
Mon Jun 3 23:47:51 PDT 2024
On 6/4/24 02:35, Caleb Sander wrote:
> On Mon, Jun 3, 2024 at 4:08 PM Keith Busch <kbusch at meta.com> wrote:
>>
>> From: Keith Busch <kbusch at kernel.org>
>>
>> Drivers must call nvme_uninit_ctrl after a successful nvme_init_ctrl.
>> Split the allocation side out to make the error handling boundary easier
>> to navigate. The nvme tcp driver's error handling had different returns
>> in the error goto labels, which harm readability.
>>
>> Signed-off-by: Keith Busch <kbusch at kernel.org>
>> ---
>> drivers/nvme/host/tcp.c | 25 +++++++++++++++++++------
>> 1 file changed, 19 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/nvme/host/tcp.c b/drivers/nvme/host/tcp.c
>> index 8b5e4327fe83b..7f75d01dcbed0 100644
>> --- a/drivers/nvme/host/tcp.c
>> +++ b/drivers/nvme/host/tcp.c
>> @@ -2686,7 +2686,7 @@ nvme_tcp_existing_controller(struct nvmf_ctrl_options *opts)
>> return found;
>> }
>>
>> -static struct nvme_ctrl *nvme_tcp_create_ctrl(struct device *dev,
>> +static struct nvme_tcp_ctrl *nvme_tcp_alloc_ctrl(struct device *dev,
>> struct nvmf_ctrl_options *opts)
>> {
>> struct nvme_tcp_ctrl *ctrl;
>> @@ -2761,6 +2761,24 @@ static struct nvme_ctrl *nvme_tcp_create_ctrl(struct device *dev,
>> if (ret)
>> goto out_kfree_queues;
>>
>> + return ctrl;
>> +out_kfree_queues:
>> + kfree(ctrl->queues);
>> +out_free_ctrl:
>> + kfree(ctrl);
>> + return ERR_PTR(ret);
>> +}
>> +
>> +static struct nvme_ctrl *nvme_tcp_create_ctrl(struct device *dev,
>> + struct nvmf_ctrl_options *opts)
>> +{
>> + struct nvme_tcp_ctrl *ctrl;
>> + int ret;
>> +
>> + ctrl = nvme_tcp_alloc_ctrl(dev, opts);
>> + if (IS_ERR(ctrl))
>> + return (struct nvme_ctrl *)ctrl;
>
> This cast doesn't look right, as struct nvme_tcp_ctrl doesn't start
> with a struct nvme_ctrl field. Looks like this should be &ctrl->ctrl
> to match the current implementation of nvme_tcp_create_ctrl()?
>
ERR_CAST() ?
Cheers,
Hannes
--
Dr. Hannes Reinecke Kernel Storage Architect
hare at suse.de +49 911 74053 688
SUSE Software Solutions GmbH, Frankenstr. 146, 90461 Nürnberg
HRB 36809 (AG Nürnberg), GF: I. Totev, A. McDonald, W. Knoblich
More information about the Linux-nvme
mailing list