|
@@ -1491,19 +1491,20 @@ static int
|
|
nvme_fc_create_hw_io_queues(struct nvme_fc_ctrl *ctrl, u16 qsize)
|
|
nvme_fc_create_hw_io_queues(struct nvme_fc_ctrl *ctrl, u16 qsize)
|
|
{
|
|
{
|
|
struct nvme_fc_queue *queue = &ctrl->queues[1];
|
|
struct nvme_fc_queue *queue = &ctrl->queues[1];
|
|
- int i, j, ret;
|
|
|
|
|
|
+ int i, ret;
|
|
|
|
|
|
for (i = 1; i < ctrl->queue_count; i++, queue++) {
|
|
for (i = 1; i < ctrl->queue_count; i++, queue++) {
|
|
ret = __nvme_fc_create_hw_queue(ctrl, queue, i, qsize);
|
|
ret = __nvme_fc_create_hw_queue(ctrl, queue, i, qsize);
|
|
- if (ret) {
|
|
|
|
- for (j = i-1; j >= 0; j--)
|
|
|
|
- __nvme_fc_delete_hw_queue(ctrl,
|
|
|
|
- &ctrl->queues[j], j);
|
|
|
|
- return ret;
|
|
|
|
- }
|
|
|
|
|
|
+ if (ret)
|
|
|
|
+ goto delete_queues;
|
|
}
|
|
}
|
|
|
|
|
|
return 0;
|
|
return 0;
|
|
|
|
+
|
|
|
|
+delete_queues:
|
|
|
|
+ for (; i >= 0; i--)
|
|
|
|
+ __nvme_fc_delete_hw_queue(ctrl, &ctrl->queues[i], i);
|
|
|
|
+ return ret;
|
|
}
|
|
}
|
|
|
|
|
|
static int
|
|
static int
|