Defined in 1 files as a function:
Referenced in 1 files:
Smatch caller information:
drivers/target/target_core_user.c run_qfull_queue() -> tcmu_free_cmd()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | tcmu_cmd | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_dev->caw_sem.first_waiter->up | 0-1 |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_dev->caw_sem.lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_dev->caw_sem.lock.owner | (-1) |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_dev->caw_sem.lock.owner_cpu | u32max |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->t_state_lock.rlock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->t_transport_stop_comp.wait.lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->t_transport_stop_comp.wait.lock.owner | (-1) |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->t_transport_stop_comp.wait.lock.owner_cpu | u32max |
| 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 run_qfull_queue() -> tcmu_free_cmd()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | tcmu_cmd | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_dev->caw_sem.first_waiter->up | 0-1 |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_dev->caw_sem.lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_dev->caw_sem.lock.owner | (-1) |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_dev->caw_sem.lock.owner_cpu | u32max |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->t_state_lock.rlock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->t_transport_stop_comp.wait.lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->t_transport_stop_comp.wait.lock.owner | (-1) |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->t_transport_stop_comp.wait.lock.owner_cpu | u32max |
| PARAM_VALUE | 0 | tcmu_cmd->tcmu_dev | 4096-ptr_max |
| 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_check_expired_queue_cmd() -> tcmu_free_cmd()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | tcmu_cmd | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->queue_entry.next->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->queue_entry.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_dev->caw_sem.first_waiter->up | 0-1 |
| DATA_SOURCE | 0 | tcmu_cmd | $0 |
| NOCHECK_CALL | |||
| LOCK2 | &udev->cmdr_lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct tcmu_dev)->cmdr_lock |
drivers/target/target_core_user.c tcmu_free_kept_buf_store() -> tcmu_free_cmd()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | tcmu_cmd | 4096-ptr_max |
| CAPPED_DATA | 0 | tcmu_cmd->dbi_cnt | 1 |
| 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_free_cmd()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | tcmu_cmd | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->queue_entry.next->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->queue_entry.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->free_compl->wait.lock.owner | (-1) |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->free_compl->wait.lock.owner_cpu | u32max |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_dev->caw_sem.first_waiter->up | 0-1 |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_dev->caw_sem.lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_dev->caw_sem.lock.owner | (-1) |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_dev->caw_sem.lock.owner_cpu | u32max |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_dev->delayed_cmd_lock.rlock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_dev->delayed_cmd_work.entry.next->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_dev->non_ordered.data->rcu.entry.next | s64max |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_dev->non_ordered.data->rcu.flags | 0-4294967295 |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_dev->non_ordered.data->rcu.func | 1-u64max |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_dev->non_ordered.data->rcu.function | 1626621062881370112 |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_dev->non_ordered.data->rcu.is_hard | 0-1 |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_dev->non_ordered.data->rcu.is_lazy | 0-1 |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_dev->non_ordered.data->rcu.is_queued | 0-1 |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_dev->non_ordered.data->rcu.is_soft | 0-1 |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_dev->qf_cmd_list.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_dev->qf_cmd_list.prev->next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_dev->qf_cmd_lock.rlock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_dev->qf_work_queue.entry.next->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_qf_node.next->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_tmr_req->tmr_dev->se_tmr_lock.rlock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_tmr_req->tmr_list.next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_tmr_req->tmr_list.next->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_tmr_req->tmr_list.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_tmr_req->tmr_list.prev->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->t_state_lock.rlock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->t_transport_stop_comp.wait.lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->t_transport_stop_comp.wait.lock.owner | (-1) |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->t_transport_stop_comp.wait.lock.owner_cpu | u32max |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->t_transport_stop_comp.wait.task_list.prev->next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->work.entry.next | 4096-ptr_max |
| CAPPED_DATA | 0 | tcmu_cmd->dbi_cnt | 1 |
| 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_queue_cmd() -> tcmu_free_cmd()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | tcmu_cmd | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->dbi | 16,4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->queue_entry.next | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->queue_entry.next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->queue_entry.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->queue_entry.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->queue_entry.prev->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->execute_cmd | 1-u64max |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_dev | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->transport_state | 0,2-u32max |
| PARAM_VALUE | 0 | tcmu_cmd->tcmu_dev | 4096-ptr_max |
| CAPPED_DATA | 0 | tcmu_cmd | 1 |
| DATA_SOURCE | 0 | tcmu_cmd | r tcmu_alloc_cmd |
| STR_LEN | 0 | tcmu_cmd->se_cmd | (-1) |
| BIT_INFO | 0 | tcmu_cmd->se_cmd->transport_state | 0x10,0xffffffff |
| 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 | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct tcmu_dev)->cmdr_lock |
drivers/target/target_core_user.c tcmu_release() -> tcmu_free_cmd()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | tcmu_cmd | 4096-ptr_max |
| CAPPED_DATA | 0 | tcmu_cmd->dbi_cnt | 1 |
| 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_free_cmd()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | tcmu_cmd | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->se_cmd->se_dev->caw_sem.first_waiter->up | 0-1 |
| CAPPED_DATA | 0 | tcmu_cmd->dbi_cnt | 1 |
| 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_tmr_notify() -> tcmu_free_cmd()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | tcmu_cmd | 4096-ptr_max |
| PARAM_VALUE | 0 | tcmu_cmd->cmd_id | 0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &udev->cmdr_lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | &se_dev->lun_reset_mutex | ||
| TYPE_LOCK | (struct tcmu_dev)->cmdr_lock |