nvme: add return code to nvme_ctrlr_cmd_get_log_page
Request allocation may fail, so we need a way to indicate failure to the caller. Change-Id: I278c3f42e4d2fa1902bb0ab33ad3bf7c7007fd0d Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
This commit is contained in:
parent
9945c00cf2
commit
af99c46557
@ -237,13 +237,16 @@ struct nvme_namespace *nvme_ctrlr_get_ns(struct nvme_controller *ctrlr, uint32_t
|
|||||||
* \param payload_size - the size of payload buffer.
|
* \param payload_size - the size of payload buffer.
|
||||||
* \param cb_fn - call back funciton pointer which will be called after get log page.
|
* \param cb_fn - call back funciton pointer which will be called after get log page.
|
||||||
* \param cb_arg - input parameter for the cb_fn.
|
* \param cb_arg - input parameter for the cb_fn.
|
||||||
|
*
|
||||||
|
* \return 0 if successfully submitted, ENOMEM if resources could not be allocated for this request
|
||||||
|
*
|
||||||
* Call \ref nvme_ctrlr_process_admin_completions() to poll for completion
|
* Call \ref nvme_ctrlr_process_admin_completions() to poll for completion
|
||||||
* of commands submitted through this function.
|
* of commands submitted through this function.
|
||||||
*/
|
*/
|
||||||
void nvme_ctrlr_cmd_get_log_page(struct nvme_controller *ctrlr,
|
int nvme_ctrlr_cmd_get_log_page(struct nvme_controller *ctrlr,
|
||||||
uint8_t log_page, uint32_t nsid,
|
uint8_t log_page, uint32_t nsid,
|
||||||
void *payload, uint32_t payload_size,
|
void *payload, uint32_t payload_size,
|
||||||
nvme_cb_fn_t cb_fn, void *cb_arg);
|
nvme_cb_fn_t cb_fn, void *cb_arg);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the identify namespace data as defined by the NVMe specification.
|
* \brief Get the identify namespace data as defined by the NVMe specification.
|
||||||
|
@ -233,7 +233,7 @@ nvme_ctrlr_cmd_set_async_event_config(struct nvme_controller *ctrlr,
|
|||||||
cb_arg);
|
cb_arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
int
|
||||||
nvme_ctrlr_cmd_get_log_page(struct nvme_controller *ctrlr, uint8_t log_page,
|
nvme_ctrlr_cmd_get_log_page(struct nvme_controller *ctrlr, uint8_t log_page,
|
||||||
uint32_t nsid, void *payload, uint32_t payload_size, nvme_cb_fn_t cb_fn,
|
uint32_t nsid, void *payload, uint32_t payload_size, nvme_cb_fn_t cb_fn,
|
||||||
void *cb_arg)
|
void *cb_arg)
|
||||||
@ -243,6 +243,10 @@ nvme_ctrlr_cmd_get_log_page(struct nvme_controller *ctrlr, uint8_t log_page,
|
|||||||
|
|
||||||
nvme_mutex_lock(&ctrlr->ctrlr_lock);
|
nvme_mutex_lock(&ctrlr->ctrlr_lock);
|
||||||
req = nvme_allocate_request(payload, payload_size, cb_fn, cb_arg);
|
req = nvme_allocate_request(payload, payload_size, cb_fn, cb_arg);
|
||||||
|
if (req == NULL) {
|
||||||
|
nvme_mutex_unlock(&ctrlr->ctrlr_lock);
|
||||||
|
return ENOMEM;
|
||||||
|
}
|
||||||
|
|
||||||
cmd = &req->cmd;
|
cmd = &req->cmd;
|
||||||
cmd->opc = NVME_OPC_GET_LOG_PAGE;
|
cmd->opc = NVME_OPC_GET_LOG_PAGE;
|
||||||
@ -252,6 +256,8 @@ nvme_ctrlr_cmd_get_log_page(struct nvme_controller *ctrlr, uint8_t log_page,
|
|||||||
|
|
||||||
nvme_ctrlr_submit_admin_request(ctrlr, req);
|
nvme_ctrlr_submit_admin_request(ctrlr, req);
|
||||||
nvme_mutex_unlock(&ctrlr->ctrlr_lock);
|
nvme_mutex_unlock(&ctrlr->ctrlr_lock);
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -50,11 +50,13 @@ int nvme_qpair_construct(struct nvme_qpair *qpair, uint16_t id,
|
|||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
void
|
|
||||||
|
int
|
||||||
nvme_ctrlr_cmd_get_log_page(struct nvme_controller *ctrlr, uint8_t log_page,
|
nvme_ctrlr_cmd_get_log_page(struct nvme_controller *ctrlr, uint8_t log_page,
|
||||||
uint32_t nsid, void *payload, uint32_t payload_size, nvme_cb_fn_t cb_fn,
|
uint32_t nsid, void *payload, uint32_t payload_size, nvme_cb_fn_t cb_fn,
|
||||||
void *cb_arg)
|
void *cb_arg)
|
||||||
{
|
{
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
Loading…
Reference in New Issue
Block a user