Defined in 1 files as a function:
Referenced in 1 files:
Smatch caller information:
drivers/target/target_core_user.c queue_cmd_ring() -> tcmu_cmd_free_data()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | tcmu_cmd | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->tcmu_dev | 4096-ptr_max |
| CAPPED_DATA | 0 | tcmu_cmd->dbi_cnt | 1 |
| DATA_SOURCE | 0 | tcmu_cmd | $0 |
| STR_LEN | 0 | tcmu_cmd->se_cmd | (-1) |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| USER_DATA | 0 | tcmu_cmd->se_cmd->residual_count | 1-u32max |
| NO_OVERFLOW_SIMPLE | 0 | tcmu_cmd->dbi_cnt | |
| NO_OVERFLOW_SIMPLE | 0 | tcmu_cmd->se_cmd->data_length | |
| NO_OVERFLOW_SIMPLE | 0 | tcmu_cmd->se_cmd->reftag_seed | |
| NO_OVERFLOW_SIMPLE | 0 | tcmu_cmd->se_cmd->sense_info | |
| NO_OVERFLOW_SIMPLE | 0 | tcmu_cmd->se_cmd->t_data_nents | |
| NO_OVERFLOW_SIMPLE | 0 | tcmu_cmd->se_cmd->t_data_nents_orig | |
| NO_OVERFLOW_SIMPLE | 0 | tcmu_cmd->se_cmd->t_prot_nents | |
| NO_OVERFLOW_SIMPLE | 0 | tcmu_cmd->se_cmd->t_task_lba | |
| LOCK2 | &udev->cmdr_lock | ||
| TYPE_LOCK | (struct tcmu_dev)->cmdr_lock |
drivers/target/target_core_user.c queue_cmd_ring() -> tcmu_cmd_free_data()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | tcmu_cmd | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->tcmu_dev | 4096-ptr_max |
| CAPPED_DATA | 0 | tcmu_cmd | 1 |
| CAPPED_DATA | 0 | tcmu_cmd->dbi_cnt | 1 |
| CAPPED_DATA | 1 | len | 1 |
| DATA_SOURCE | 0 | tcmu_cmd | $0 |
| STR_LEN | 0 | tcmu_cmd->se_cmd | (-1) |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| USER_DATA | 0 | tcmu_cmd->se_cmd->residual_count | 1-u32max |
| NO_OVERFLOW_SIMPLE | 0 | tcmu_cmd->dbi_cnt | |
| NO_OVERFLOW_SIMPLE | 0 | tcmu_cmd->se_cmd->data_length | |
| NO_OVERFLOW_SIMPLE | 0 | tcmu_cmd->se_cmd->reftag_seed | |
| NO_OVERFLOW_SIMPLE | 0 | tcmu_cmd->se_cmd->sense_info | |
| NO_OVERFLOW_SIMPLE | 0 | tcmu_cmd->se_cmd->t_data_nents | |
| NO_OVERFLOW_SIMPLE | 0 | tcmu_cmd->se_cmd->t_data_nents_orig | |
| NO_OVERFLOW_SIMPLE | 0 | tcmu_cmd->se_cmd->t_prot_nents | |
| NO_OVERFLOW_SIMPLE | 0 | tcmu_cmd->se_cmd->t_task_lba | |
| NO_OVERFLOW_SIMPLE | 1 | len | |
| LOCK2 | &udev->cmdr_lock | ||
| TYPE_LOCK | (struct tcmu_dev)->cmdr_lock |
drivers/target/target_core_user.c queue_cmd_ring() -> tcmu_cmd_free_data()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | tcmu_cmd | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->tcmu_dev | 4096-ptr_max |
| CAPPED_DATA | 0 | tcmu_cmd->dbi_cnt | 1 |
| DATA_SOURCE | 0 | tcmu_cmd | $0 |
| STR_LEN | 0 | tcmu_cmd->se_cmd | (-1) |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| USER_DATA | 0 | tcmu_cmd->se_cmd->residual_count | 1-u32max |
| NO_OVERFLOW_SIMPLE | 0 | tcmu_cmd->dbi_cnt | |
| NO_OVERFLOW_SIMPLE | 0 | tcmu_cmd->se_cmd->data_length | |
| NO_OVERFLOW_SIMPLE | 0 | tcmu_cmd->se_cmd->reftag_seed | |
| NO_OVERFLOW_SIMPLE | 0 | tcmu_cmd->se_cmd->sense_info | |
| NO_OVERFLOW_SIMPLE | 0 | tcmu_cmd->se_cmd->t_data_nents | |
| NO_OVERFLOW_SIMPLE | 0 | tcmu_cmd->se_cmd->t_data_nents_orig | |
| NO_OVERFLOW_SIMPLE | 0 | tcmu_cmd->se_cmd->t_prot_nents | |
| NO_OVERFLOW_SIMPLE | 0 | tcmu_cmd->se_cmd->t_task_lba | |
| LOCK2 | &udev->cmdr_lock | ||
| TYPE_LOCK | (struct tcmu_dev)->cmdr_lock |
drivers/target/target_core_user.c tcmu_free_kept_buf_store() -> tcmu_cmd_free_data()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | tcmu_cmd | 4096-ptr_max |
| DATA_SOURCE | 0 | tcmu_cmd | r xas_load |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &buffer->mutex | ||
| LOCK2 | &frag->frag_sem | ||
| LOCK2 | &udev->cmdr_lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct configfs_buffer)->mutex | ||
| TYPE_LOCK | (struct configfs_fragment)->frag_sem | ||
| TYPE_LOCK | (struct tcmu_dev)->cmdr_lock |
drivers/target/target_core_user.c tcmu_handle_completion() -> tcmu_cmd_free_data()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | tcmu_cmd | 4096-ptr_max |
| DATA_SOURCE | 0 | tcmu_cmd | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &udev->cmdr_lock | ||
| HALF_LOCKED2 | &buffer->mutex | ||
| HALF_LOCKED2 | &frag->frag_sem | ||
| HALF_LOCKED2 | &idev->info_lock | ||
| HALF_LOCKED2 | global &root_udev_mutex | ||
| TYPE_LOCK | (struct tcmu_dev)->cmdr_lock |
drivers/target/target_core_user.c tcmu_release() -> tcmu_cmd_free_data()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | tcmu_cmd | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &idev->info_lock | ||
| LOCK2 | &udev->cmdr_lock | ||
| TYPE_LOCK | (struct tcmu_dev)->cmdr_lock | ||
| TYPE_LOCK | (struct uio_device)->info_lock |
drivers/target/target_core_user.c tcmu_reset_ring() -> tcmu_cmd_free_data()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | tcmu_cmd | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &buffer->mutex | ||
| LOCK2 | &frag->frag_sem | ||
| LOCK2 | &udev->cmdr_lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct configfs_buffer)->mutex | ||
| TYPE_LOCK | (struct configfs_fragment)->frag_sem | ||
| TYPE_LOCK | (struct tcmu_dev)->cmdr_lock |