Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

drivers/char/tpm/tpm-dev-common.c tpm_dev_transmit() -> tpm2_flush_space()

Type Parameter Key Value
PARAM_VALUE 0 chip 4096-ptr_max
PARAM_VALUE 0 chip->dev.driver_data->state 0-9223372036854775799
PARAM_VALUE 0 chip->dev.driver_data->tpm_ready->wait.lock.owner (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 chip->dev.driver_data->tpm_ready.done 0
PARAM_VALUE 0 chip->dev.driver_data->tpm_ready.wait.lock.owner (-1)
PARAM_VALUE 0 chip->dev.driver_data->tpm_ready.wait.lock.owner_cpu 4294967295
PARAM_VALUE 0 chip->ops_sem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 chip->ops_sem.first_waiter->type 0-1
PARAM_VALUE 0 chip->tpm_mutex.dep_map->name 0-255
PARAM_VALUE 0 chip->tpm_mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 chip->tpm_mutex.first_waiter->list.prev->prev 5159360019465732096
DATA_SOURCE 0 chip $0
NOCHECK_CALL
USER_DATA 0 chip->dev.driver_data->buffer->buf_size 1-4087[u]
USER_DATA 0 *chip->dev.driver_data->buffer 0-255
USER_DATA 0 *chip->dev.driver_data->buffer->buf 0-255
LOCK2 &priv->buffer_mutex
LOCK2 0 &chip->ops_sem
LOCK2 0 &chip->tpm_mutex
TYPE_LOCK (struct file_priv)->buffer_mutex
TYPE_LOCK (struct tpm_chip)->ops_sem
TYPE_LOCK (struct tpm_chip)->tpm_mutex

drivers/char/tpm/tpm2-space.c tpm2_commit_space() -> tpm2_flush_space()

Type Parameter Key Value
PARAM_VALUE 0 chip 4096-ptr_max
PARAM_VALUE 0 chip->dev.driver_data->tpm_ready->wait.lock.owner (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 chip->dev.driver_data->tpm_ready.done 0
PARAM_VALUE 0 chip->dev.driver_data->tpm_ready.wait.lock.owner (-1)
PARAM_VALUE 0 chip->dev.driver_data->tpm_ready.wait.lock.owner_cpu 4294967295
PARAM_VALUE 0 chip->ops_sem.dep_map->name 0-255
PARAM_VALUE 0 chip->ops_sem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 chip->ops_sem.first_waiter->list.next 2212933610777083904
PARAM_VALUE 0 chip->ops_sem.first_waiter->type 0-1
PARAM_VALUE 0 chip->tpm_mutex.dep_map->name 0-255
PARAM_VALUE 0 chip->tpm_mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 chip->tpm_mutex.first_waiter->list.prev->prev 5159360019465732096
DATA_SOURCE 0 chip $0
NOCHECK_CALL
LOCK2 &priv->buffer_mutex
LOCK2 0 &chip->ops_sem
LOCK2 0 &chip->tpm_mutex
TYPE_LOCK (struct file_priv)->buffer_mutex
TYPE_LOCK (struct tpm_chip)->ops_sem
TYPE_LOCK (struct tpm_chip)->tpm_mutex

drivers/char/tpm/tpm2-space.c tpm2_commit_space() -> tpm2_flush_space()

Type Parameter Key Value
PARAM_VALUE 0 chip 4096-ptr_max
PARAM_VALUE 0 chip->dev.driver_data->tpm_ready->wait.lock.owner (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 chip->dev.driver_data->tpm_ready.done 0
PARAM_VALUE 0 chip->dev.driver_data->tpm_ready.wait.lock.owner (-1)
PARAM_VALUE 0 chip->dev.driver_data->tpm_ready.wait.lock.owner_cpu 4294967295
PARAM_VALUE 0 chip->last_cc 378
PARAM_VALUE 0 chip->nr_commands 1-u32max
PARAM_VALUE 0 chip->ops_sem.dep_map->name 0-255
PARAM_VALUE 0 chip->ops_sem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 chip->ops_sem.first_waiter->list.next 2212933610777083904
PARAM_VALUE 0 chip->ops_sem.first_waiter->type 0-1
PARAM_VALUE 0 chip->tpm_mutex.dep_map->name 0-255
PARAM_VALUE 0 chip->tpm_mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 chip->tpm_mutex.first_waiter->list.prev->prev 5159360019465732096
CAPPED_DATA 0 chip->nr_commands 1
DATA_SOURCE 0 chip $0
NOCHECK_CALL
LOCK2 &priv->buffer_mutex
LOCK2 0 &chip->ops_sem
LOCK2 0 &chip->tpm_mutex
TYPE_LOCK (struct file_priv)->buffer_mutex
TYPE_LOCK (struct tpm_chip)->ops_sem
TYPE_LOCK (struct tpm_chip)->tpm_mutex

drivers/char/tpm/tpm2-space.c tpm2_commit_space() -> tpm2_flush_space()

Type Parameter Key Value
PARAM_VALUE 0 chip 4096-ptr_max
PARAM_VALUE 0 chip->dev.driver_data->tpm_ready->wait.lock.owner (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 chip->dev.driver_data->tpm_ready.done 0
PARAM_VALUE 0 chip->dev.driver_data->tpm_ready.wait.lock.owner (-1)
PARAM_VALUE 0 chip->dev.driver_data->tpm_ready.wait.lock.owner_cpu 4294967295
PARAM_VALUE 0 chip->ops_sem.dep_map->name 0-255
PARAM_VALUE 0 chip->ops_sem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 chip->ops_sem.first_waiter->list.next 2212933610777083904
PARAM_VALUE 0 chip->ops_sem.first_waiter->type 0-1
PARAM_VALUE 0 chip->tpm_mutex.dep_map->name 0-255
PARAM_VALUE 0 chip->tpm_mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 chip->tpm_mutex.first_waiter->list.prev->prev 5159360019465732096
DATA_SOURCE 0 chip $0
NOCHECK_CALL
LOCK2 &priv->buffer_mutex
LOCK2 0 &chip->ops_sem
LOCK2 0 &chip->tpm_mutex
TYPE_LOCK (struct file_priv)->buffer_mutex
TYPE_LOCK (struct tpm_chip)->ops_sem
TYPE_LOCK (struct tpm_chip)->tpm_mutex

drivers/char/tpm/tpm2-space.c tpm2_load_space() -> tpm2_flush_space()

Type Parameter Key Value
PARAM_VALUE 0 chip 4096-ptr_max
PARAM_VALUE 0 chip->dev.driver_data->locality_count 0-4294967295
PARAM_VALUE 0 chip->dev.driver_data->locality_count_mutex->wait_lock.owner (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 chip->dev.driver_data->locality_count_mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 chip->dev.driver_data->locality_count_mutex.first_waiter->task->blocked_lock.owner (-1)
PARAM_VALUE 0 chip->dev.driver_data->locality_count_mutex.first_waiter->task->usage.refs.counter s32min-s32max
PARAM_VALUE 0 chip->dev.driver_data->locality_count_mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 chip->dev.driver_data->state 0-9223372036854775799
PARAM_VALUE 0 chip->ops_sem.dep_map->name 0-255
PARAM_VALUE 0 chip->ops_sem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 chip->ops_sem.first_waiter->list.next 2212933610777083904
PARAM_VALUE 0 chip->ops_sem.first_waiter->list.prev 2212933610777083904
PARAM_VALUE 0 chip->ops_sem.first_waiter->type 0-1
PARAM_VALUE 0 chip->tpm_mutex.dep_map->name 0-255
PARAM_VALUE 0 chip->tpm_mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 chip->tpm_mutex.first_waiter->list.prev->prev 5159360019465732096
PARAM_VALUE 0 chip->work_space.context_tbl 4096-ptr_max
PARAM_VALUE 0 chip->work_space.session_tbl 4096-ptr_max
DATA_SOURCE 0 chip $0
NOCHECK_CALL
LOCK2 &priv->buffer_mutex
LOCK2 0 &chip->ops_sem
LOCK2 0 &chip->tpm_mutex
TYPE_LOCK (struct file_priv)->buffer_mutex
TYPE_LOCK (struct tpm_chip)->ops_sem
TYPE_LOCK (struct tpm_chip)->tpm_mutex

drivers/char/tpm/tpm2-space.c tpm2_load_space() -> tpm2_flush_space()

Type Parameter Key Value
PARAM_VALUE 0 chip 4096-ptr_max
PARAM_VALUE 0 chip->dev.bus 0,4096-ptr_max
PARAM_VALUE 0 chip->dev.class 0,4096-ptr_max
PARAM_VALUE 0 chip->dev.driver 0,4096-ptr_max
PARAM_VALUE 0 chip->dev.driver_data->locality_count 0-4294967295
PARAM_VALUE 0 chip->dev.driver_data->locality_count_mutex->wait_lock.owner (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 chip->dev.driver_data->locality_count_mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 chip->dev.driver_data->locality_count_mutex.first_waiter->task->blocked_lock.owner (-1)
PARAM_VALUE 0 chip->dev.driver_data->locality_count_mutex.first_waiter->task->usage.refs.counter s32min-s32max
PARAM_VALUE 0 chip->dev.driver_data->locality_count_mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 chip->dev.driver_data->state 0-9223372036854775799
PARAM_VALUE 0 chip->ops_sem.dep_map->name 0-255
PARAM_VALUE 0 chip->ops_sem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 chip->ops_sem.first_waiter->list.next 2212933610777083904
PARAM_VALUE 0 chip->ops_sem.first_waiter->list.prev 2212933610777083904
PARAM_VALUE 0 chip->ops_sem.first_waiter->type 0-1
PARAM_VALUE 0 chip->tpm_mutex.dep_map->name 0-255
PARAM_VALUE 0 chip->tpm_mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 chip->tpm_mutex.first_waiter->list.prev->prev 5159360019465732096
PARAM_VALUE 0 chip->work_space.context_tbl 4096-ptr_max
PARAM_VALUE 0 chip->work_space.session_tbl 4096-ptr_max
DATA_SOURCE 0 chip $0
NOCHECK_CALL
LOCK2 &priv->buffer_mutex
LOCK2 0 &chip->ops_sem
LOCK2 0 &chip->tpm_mutex
TYPE_LOCK (struct file_priv)->buffer_mutex
TYPE_LOCK (struct tpm_chip)->ops_sem
TYPE_LOCK (struct tpm_chip)->tpm_mutex

drivers/char/tpm/tpm2-space.c tpm2_prepare_space() -> tpm2_flush_space()

Type Parameter Key Value
PARAM_VALUE 0 chip 4096-ptr_max
PARAM_VALUE 0 chip->dev.driver_data->tpm_ready->wait.lock.owner (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 chip->dev.driver_data->tpm_ready.done 0
PARAM_VALUE 0 chip->dev.driver_data->tpm_ready.wait.lock.owner (-1)
PARAM_VALUE 0 chip->dev.driver_data->tpm_ready.wait.lock.owner_cpu 4294967295
PARAM_VALUE 0 chip->ops_sem.dep_map->name 0-255
PARAM_VALUE 0 chip->ops_sem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 chip->ops_sem.first_waiter->list.next 2212933610777083904
PARAM_VALUE 0 chip->ops_sem.first_waiter->type 0-1
PARAM_VALUE 0 chip->tpm_mutex.dep_map->name 0-255
PARAM_VALUE 0 chip->tpm_mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 chip->tpm_mutex.first_waiter->list.prev->prev 5159360019465732096
DATA_SOURCE 0 chip $0
NOCHECK_CALL
LOCK2 &priv->buffer_mutex
LOCK2 0 &chip->ops_sem
LOCK2 0 &chip->tpm_mutex
TYPE_LOCK (struct file_priv)->buffer_mutex
TYPE_LOCK (struct tpm_chip)->ops_sem
TYPE_LOCK (struct tpm_chip)->tpm_mutex

drivers/char/tpm/tpm2-space.c tpm2_prepare_space() -> tpm2_flush_space()

Type Parameter Key Value
PARAM_VALUE 0 chip 4096-ptr_max
PARAM_VALUE 0 chip->dev.driver_data->tpm_ready->wait.lock.owner (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 chip->dev.driver_data->tpm_ready.done 0
PARAM_VALUE 0 chip->dev.driver_data->tpm_ready.wait.lock.owner (-1)
PARAM_VALUE 0 chip->dev.driver_data->tpm_ready.wait.lock.owner_cpu 4294967295
PARAM_VALUE 0 chip->ops_sem.dep_map->name 0-255
PARAM_VALUE 0 chip->ops_sem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 chip->ops_sem.first_waiter->list.next 2212933610777083904
PARAM_VALUE 0 chip->ops_sem.first_waiter->type 0-1
PARAM_VALUE 0 chip->tpm_mutex.dep_map->name 0-255
PARAM_VALUE 0 chip->tpm_mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 chip->tpm_mutex.first_waiter->list.prev->prev 5159360019465732096
PARAM_VALUE 0 *chip->work_space->session_tbl 0
CAPPED_DATA 0 chip->nr_commands 1
DATA_SOURCE 0 chip $0
NOCHECK_CALL
LOCK2 &priv->buffer_mutex
LOCK2 0 &chip->ops_sem
LOCK2 0 &chip->tpm_mutex
TYPE_LOCK (struct file_priv)->buffer_mutex
TYPE_LOCK (struct tpm_chip)->ops_sem
TYPE_LOCK (struct tpm_chip)->tpm_mutex

drivers/char/tpm/tpm2-space.c tpm2_save_space() -> tpm2_flush_space()

Type Parameter Key Value
PARAM_VALUE 0 chip 4096-ptr_max
PARAM_VALUE 0 chip->dev.driver_data->locality_count 0-4294967295
PARAM_VALUE 0 chip->dev.driver_data->locality_count_mutex->wait_lock.owner (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 chip->dev.driver_data->locality_count_mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 chip->dev.driver_data->locality_count_mutex.first_waiter->task->blocked_lock.owner (-1)
PARAM_VALUE 0 chip->dev.driver_data->locality_count_mutex.first_waiter->task->usage.refs.counter s32min-s32max
PARAM_VALUE 0 chip->dev.driver_data->locality_count_mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 chip->dev.driver_data->state 0-9223372036854775799
PARAM_VALUE 0 chip->ops_sem.dep_map->name 0-255
PARAM_VALUE 0 chip->ops_sem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 chip->ops_sem.first_waiter->list.next 2212933610777083904
PARAM_VALUE 0 chip->ops_sem.first_waiter->list.prev 2212933610777083904
PARAM_VALUE 0 chip->ops_sem.first_waiter->type 0-1
PARAM_VALUE 0 chip->tpm_mutex.dep_map->name 0-255
PARAM_VALUE 0 chip->tpm_mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 chip->tpm_mutex.first_waiter->list.prev->prev 5159360019465732096
PARAM_VALUE 0 chip->work_space.context_tbl 4096-ptr_max
PARAM_VALUE 0 chip->work_space.session_tbl 4096-ptr_max
DATA_SOURCE 0 chip $0
NOCHECK_CALL
LOCK2 &priv->buffer_mutex
LOCK2 0 &chip->ops_sem
LOCK2 0 &chip->tpm_mutex
TYPE_LOCK (struct file_priv)->buffer_mutex
TYPE_LOCK (struct tpm_chip)->ops_sem
TYPE_LOCK (struct tpm_chip)->tpm_mutex