Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 3 files:

Smatch caller information:

security/keys/request_key.c construct_alloc_key() -> __key_link_begin()

Type Parameter Key Value
PARAM_VALUE 0 keyring 4096-ptr_max
PARAM_VALUE 0 keyring->sem.first_waiter->type 0-1
PARAM_VALUE 1 index_key 4096-ptr_max
PARAM_VALUE 1 index_key->description 1-u64max
PARAM_VALUE 1 index_key->type 4096-ptr_max
PARAM_VALUE 2 _edit 2670731003012833280
PARAM_VALUE 2 *_edit 0
DATA_SOURCE 0 keyring $1
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 keyring->quotalen
LOCK2 &user->cons_lock
LOCK2 global &key_construction_mutex
HALF_LOCKED2 &idmap->idmap_mutex
HALF_LOCKED2 global &key_types_sem
HALF_LOCKED2 0 &keyring->sem
TYPE_LOCK (struct key_user)->cons_lock

security/keys/request_key.c construct_alloc_key() -> __key_link_begin()

Type Parameter Key Value
PARAM_VALUE 0 keyring 4096-ptr_max
PARAM_VALUE 0 keyring->sem.first_waiter->type 0-1
PARAM_VALUE 1 index_key 4096-ptr_max
PARAM_VALUE 2 _edit 2670731003012833280
PARAM_VALUE 2 *_edit 0
DATA_SOURCE 0 keyring $1
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 keyring->quotalen
LOCK2 &user->cons_lock
HALF_LOCKED2 &idmap->idmap_mutex
HALF_LOCKED2 global &key_types_sem
HALF_LOCKED2 0 &keyring->sem
TYPE_LOCK (struct key_user)->cons_lock

security/keys/key.c __key_create_or_update() -> __key_link_begin()

Type Parameter Key Value
PARAM_VALUE 0 keyring 4096-ptr_max
PARAM_VALUE 0 keyring->sem.dep_map->name 0-255
PARAM_VALUE 0 keyring->sem.first_waiter->list.next 2624917664208203776
PARAM_VALUE 0 keyring->sem.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 0 keyring->sem.first_waiter->type 0-1
PARAM_VALUE 0 keyring->sem.osq.tail.counter 0-s32max
PARAM_VALUE 0 keyring->type 9142442151112187904
PARAM_VALUE 1 index_key 5936470887294271488
PARAM_VALUE 1 index_key->description 1-u64max
PARAM_VALUE 1 index_key->type 4096-ptr_max
PARAM_VALUE 1 index_key->x 0
PARAM_VALUE 2 _edit 7794118225265389568
PARAM_VALUE 2 *_edit 0
DATA_SOURCE 0 keyring r key_ref_to_ptr
RX_PATH
TASK_NOT_RUNNING
USER_PTR 1 index_key->description
LOCK2 global &key_types_sem
LOCK2 0 &keyring->sem
TYPE_LOCK (struct key)->sem

security/keys/key.c key_instantiate_and_link() -> __key_link_begin()

Type Parameter Key Value
PARAM_VALUE 0 keyring 4096-ptr_max
PARAM_VALUE 0 keyring->sem.dep_map->name 0-255
PARAM_VALUE 0 keyring->sem.first_waiter->list.next 2624917664208203776
PARAM_VALUE 0 keyring->sem.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 0 keyring->sem.first_waiter->type 0-1
PARAM_VALUE 0 keyring->sem.osq.tail.counter 0-s32max
PARAM_VALUE 0 keyring->type 4096-ptr_max
PARAM_VALUE 1 index_key 4096-ptr_max
PARAM_VALUE 2 _edit 3902931883866345472
PARAM_VALUE 2 *_edit 0
BUF_SIZE 0 keyring (-1)-s32max
BUF_SIZE 0 keyring (-1)-s32max
DATA_SOURCE 0 keyring $3
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 keyring->quotalen
NO_OVERFLOW_SIMPLE 0 keyring->user->qnbytes
LOCK2 0 &keyring->sem
HALF_LOCKED2 &inode->i_rwsem
TYPE_LOCK (struct key)->sem

security/keys/key.c key_reject_and_link() -> __key_link_begin()

Type Parameter Key Value
PARAM_VALUE 0 keyring 4096-ptr_max
PARAM_VALUE 0 keyring->restrict_link 0
PARAM_VALUE 0 keyring->sem.dep_map->name 0-255
PARAM_VALUE 0 keyring->sem.first_waiter->list.next 2624917664208203776
PARAM_VALUE 0 keyring->sem.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 0 keyring->sem.first_waiter->type 0-1
PARAM_VALUE 0 keyring->sem.osq.tail.counter 0-s32max
PARAM_VALUE 0 keyring->type 4096-ptr_max
PARAM_VALUE 1 index_key 4096-ptr_max
PARAM_VALUE 2 _edit 3463464789467828224
PARAM_VALUE 2 *_edit 0
DATA_SOURCE 0 keyring $3
RX_PATH
LOCK2 0 &keyring->sem
TYPE_LOCK (struct key)->sem

security/keys/keyring.c key_link() -> __key_link_begin()

Type Parameter Key Value
PARAM_VALUE 0 keyring 4096-ptr_max
PARAM_VALUE 0 keyring->sem.dep_map->name 0-255
PARAM_VALUE 0 keyring->sem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 keyring->sem.first_waiter->list.next 2624917664208203776
PARAM_VALUE 0 keyring->sem.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 0 keyring->sem.first_waiter->type 0-1
PARAM_VALUE 0 keyring->sem.osq.tail.counter 0-s32max
PARAM_VALUE 0 keyring->type 4096-ptr_max
PARAM_VALUE 1 index_key 264,4096-ptr_max
PARAM_VALUE 2 _edit 7393829948701548544
PARAM_VALUE 2 *_edit 0
BUF_SIZE 0 keyring (-1)-s32max
BUF_SIZE 0 keyring (-1)-s32max
DATA_SOURCE 0 keyring $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 keyring->quotalen
NO_OVERFLOW_SIMPLE 0 keyring->user->qnbytes
LOCK2 0 &keyring->sem
HALF_LOCKED2 &user_ns->keyring_sem
HALF_LOCKED2 global &key_types_sem
TYPE_LOCK (struct key)->sem

security/keys/keyring.c key_move() -> __key_link_begin()

Type Parameter Key Value
PARAM_VALUE 0 keyring 4096-ptr_max
PARAM_VALUE 0 keyring->sem.dep_map->name 0-255
PARAM_VALUE 0 keyring->sem.first_waiter->list.next 2624917664208203776
PARAM_VALUE 0 keyring->sem.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 0 keyring->sem.first_waiter->type 0-1
PARAM_VALUE 0 keyring->sem.osq.tail.counter 0-s32max
PARAM_VALUE 0 keyring->type 4096-ptr_max
PARAM_VALUE 1 index_key 264,4096-ptr_max
PARAM_VALUE 2 _edit 1378343099394371584
PARAM_VALUE 2 *_edit 0
CAPPED_DATA 0 keyring 1
DATA_SOURCE 0 keyring $2
LOCK2 &from_keyring->sem
LOCK2 0 &keyring->sem
TYPE_LOCK (struct key)->sem