mirror of
https://github.com/torvalds/linux.git
synced 2026-05-24 15:12:13 +02:00
nvmet: add a helper function for cqid checking
This patch adds a new helper function nvmet_check_io_cqid(). It is to be used when parsing host commands for IO CQ creation/deletion and IO SQ creation to ensure that the specified IO completion queue identifier (CQID) is not 0 (Admin queue ID). This is a check that already occurs in the nvmet_execute_x() functions prior to nvmet_check_cqid. With the addition of this helper function, the CQ ID checks in the nvmet_execute_x() function can be removed, and instead simply call nvmet_check_io_cqid() in place of nvmet_check_cqid(). Signed-off-by: Wilfred Mallawa <wilfred.mallawa@wdc.com> Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com> Reviewed-by: Damien Le Moal <dlemoal@kernel.org> Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
c91a201291
commit
b3649f829a
|
|
@ -96,12 +96,7 @@ static void nvmet_execute_delete_cq(struct nvmet_req *req)
|
|||
goto complete;
|
||||
}
|
||||
|
||||
if (!cqid) {
|
||||
status = NVME_SC_QID_INVALID | NVME_STATUS_DNR;
|
||||
goto complete;
|
||||
}
|
||||
|
||||
status = nvmet_check_cqid(ctrl, cqid);
|
||||
status = nvmet_check_io_cqid(ctrl, cqid);
|
||||
if (status != NVME_SC_SUCCESS)
|
||||
goto complete;
|
||||
|
||||
|
|
@ -127,12 +122,7 @@ static void nvmet_execute_create_cq(struct nvmet_req *req)
|
|||
goto complete;
|
||||
}
|
||||
|
||||
if (!cqid) {
|
||||
status = NVME_SC_QID_INVALID | NVME_STATUS_DNR;
|
||||
goto complete;
|
||||
}
|
||||
|
||||
status = nvmet_check_cqid(ctrl, cqid);
|
||||
status = nvmet_check_io_cqid(ctrl, cqid);
|
||||
if (status != NVME_SC_SUCCESS)
|
||||
goto complete;
|
||||
|
||||
|
|
|
|||
|
|
@ -859,6 +859,13 @@ u16 nvmet_check_cqid(struct nvmet_ctrl *ctrl, u16 cqid)
|
|||
return NVME_SC_SUCCESS;
|
||||
}
|
||||
|
||||
u16 nvmet_check_io_cqid(struct nvmet_ctrl *ctrl, u16 cqid)
|
||||
{
|
||||
if (!cqid)
|
||||
return NVME_SC_QID_INVALID | NVME_STATUS_DNR;
|
||||
return nvmet_check_cqid(ctrl, cqid);
|
||||
}
|
||||
|
||||
u16 nvmet_cq_create(struct nvmet_ctrl *ctrl, struct nvmet_cq *cq,
|
||||
u16 qid, u16 size)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -572,6 +572,7 @@ void nvmet_execute_get_features(struct nvmet_req *req);
|
|||
void nvmet_execute_keep_alive(struct nvmet_req *req);
|
||||
|
||||
u16 nvmet_check_cqid(struct nvmet_ctrl *ctrl, u16 cqid);
|
||||
u16 nvmet_check_io_cqid(struct nvmet_ctrl *ctrl, u16 cqid);
|
||||
void nvmet_cq_setup(struct nvmet_ctrl *ctrl, struct nvmet_cq *cq, u16 qid,
|
||||
u16 size);
|
||||
u16 nvmet_cq_create(struct nvmet_ctrl *ctrl, struct nvmet_cq *cq, u16 qid,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user