[PATCH] nvme: nvme-fc: Fix nvme_fc_create_hw_io_queues() queue deletion in error path
Laurence Oberman
loberman at redhat.com
Tue Jun 30 13:19:38 PDT 2026
On Tue, 2026-06-30 at 14:56 -0400, Ewan Milne wrote:
> On Wed, May 13, 2026 at 3:27 PM Ewan D. Milne <emilne at redhat.com>
> wrote:
> >
> > nvme_fc_create_hw_io_queues() will call __nvme_fc_delete_hw_queue()
> > for the
> > last queue on which __nvme_fc_create_hw_queue() reported an error
> > when deleting
> > all the io queues if they cannot all be created. This is incorrect
> > since the
> > last queue did not actually get created.
> >
> > The most recent change to this code was commit 17a1ec08ce70
> > ("nvme/fc: simplify
> > error handling of nvme_fc_create_hw_io_queues") which moved the
> > cleanup to the
> > delete_queues: label and changed the loop bounds, however the code
> > was not
> > correct prior to this change in a different way. The original
> > commit
> > e399441de911 ("nvme-fabrics: Add host support for FC transport")
> > had a
> > different error which called __nvme_fc_delete_hw_queue() on queue
> > index 0 which
> > is used for the admin queue.
> >
> > Fix this by correcting the initial loop index when deleting the io
> > queues.
> >
> > Fixes: 17a1ec08ce70 ("nvme/fc: simplify error handling of
> > nvme_fc_create_hw_io_queues")
> > Fixes: e399441de911 ("nvme-fabrics: Add host support for FC
> > transport")
> > Cc: stable at vger.kernel.org
> > Assisted-by: Claude:claude-opus-4-6
> > Signed-off-by: Ewan D. Milne <emilne at redhat.com>
> > ---
> > drivers/nvme/host/fc.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/nvme/host/fc.c b/drivers/nvme/host/fc.c
> > index e4f4528fe2a2..f5a83798f3a9 100644
> > --- a/drivers/nvme/host/fc.c
> > +++ b/drivers/nvme/host/fc.c
> > @@ -2318,7 +2318,7 @@ nvme_fc_create_hw_io_queues(struct
> > nvme_fc_ctrl *ctrl, u16 qsize)
> > return 0;
> >
> > delete_queues:
> > - for (; i > 0; i--)
> > + for (--i; i > 0; i--)
> > __nvme_fc_delete_hw_queue(ctrl, &ctrl->queues[i],
> > i);
> > return ret;
> > }
> > --
> > 2.52.0
> >
> >
>
> Gentle ping for reviews.
>
> -Ewan
>
Looks good to me, loop index is corrected.
Reviewed-by: Laurence Oberman <loberman at redhat.com>
More information about the Linux-nvme
mailing list