Defined in 1 files as a function:
Referenced in 1 files:
Smatch caller information:
lib/test_hmm.c dmirror_exclusive() -> dmirror_do_read()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dmirror | 4096-ptr_max |
| PARAM_VALUE | 0 | dmirror->mutex.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | dmirror->mutex.first_waiter | 0,4096-ptr_max |
| PARAM_VALUE | 0 | dmirror->mutex.first_waiter->list.prev->next | 5159360019465732096 |
| PARAM_VALUE | 0 | dmirror->mutex.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 0 | dmirror->mutex.wait_lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | dmirror->mutex.wait_lock.owner | (-1) |
| PARAM_VALUE | 0 | dmirror->mutex.wait_lock.owner_cpu | u32max |
| PARAM_VALUE | 0 | dmirror->notifier.mm | 4096-ptr_max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->context.ldt | 0 |
| PARAM_VALUE | 0 | dmirror->notifier.mm->exe_file | 0 |
| PARAM_VALUE | 0 | dmirror->notifier.mm->exe_file->f_cred->process_keyring->user->qnbytes | s32min-s32max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->exe_file->f_cred->process_keyring->user->qnkeys | s32min-s32max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->exe_file->f_cred->rcu.func | 1-u64max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->exe_file->f_cred->request_key_auth->user->qnbytes | s32min-s32max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->exe_file->f_cred->request_key_auth->user->qnkeys | s32min-s32max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->exe_file->f_cred->session_keyring->user->qnbytes | s32min-s32max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->exe_file->f_cred->session_keyring->user->qnkeys | s32min-s32max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->exe_file->f_cred->thread_keyring->user->qnbytes | s32min-s32max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->exe_file->f_cred->thread_keyring->user->qnkeys | s32min-s32max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->exe_file->f_cred->ucounts->ns->work.entry.next->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->exe_file->f_cred->user_ns->work.entry.next->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->exe_file->f_task_work.func | 5179756662909861888 |
| PARAM_VALUE | 0 | dmirror->notifier.mm->exe_file->f_task_work.next | 0-7661163036167163903,7661163036167163905-u64max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->ioctx_table | 0 |
| PARAM_VALUE | 0 | dmirror->notifier.mm->lru_gen.list.next->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->lru_gen.list.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->mm_cid.pcpu | 0 |
| PARAM_VALUE | 0 | dmirror->notifier.mm->mm_id | 0 |
| PARAM_VALUE | 0 | dmirror->notifier.mm->mm_mt.ma_lock.rlock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | dmirror->notifier.mm->mm_mt.ma_root | 0 |
| PARAM_VALUE | 0 | dmirror->notifier.mm->mmap_lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | dmirror->notifier.mm->mmap_lock.first_waiter->handoff_set | 1 |
| PARAM_VALUE | 0 | dmirror->notifier.mm->mmap_lock.first_waiter->list.next | 2212933610777083904,2624917664208203776 |
| PARAM_VALUE | 0 | dmirror->notifier.mm->mmap_lock.first_waiter->list.prev | 2212933610777083904,2624917664208203776 |
| PARAM_VALUE | 0 | dmirror->notifier.mm->mmap_lock.first_waiter->type | 0-1 |
| PARAM_VALUE | 0 | dmirror->notifier.mm->mmap_lock.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 0 | *dmirror->notifier.mm->exe_file->f_cred->user->uidhash_node.next->pprev | 1-u64max |
| PARAM_VALUE | 1 | start | 0-18446744073709551614 |
| PARAM_VALUE | 2 | end | 0-18446744073709551614 |
| PARAM_VALUE | 3 | bounce | 4346101643010330624 |
| PARAM_VALUE | 3 | bounce->addr | 0-18446744073709551614 |
| PARAM_VALUE | 3 | bounce->cpages | 0 |
| PARAM_VALUE | 3 | bounce->ptr | 1-u64max |
| PARAM_VALUE | 3 | bounce->size | 0,4096-18446744073709547520 |
| BUF_SIZE | 0 | dmirror | s32min-(-2),1-s32max |
| BUF_SIZE | 0 | dmirror | s32min-(-2),1-s32max |
| CAPPED_DATA | 0 | &dmirror->mutex | 1 |
| CAPPED_DATA | 1 | start | 1 |
| CAPPED_DATA | 1 | start | 1 |
| CAPPED_DATA | 2 | end | 1 |
| CAPPED_DATA | 2 | end | 1 |
| DATA_SOURCE | 0 | dmirror | $0 |
| PARAM_COMPARE | 1 | start | <= $2 |
| PARAM_COMPARE | 2 | end | >= $1 |
| PARAM_COMPARE | 2 | end | >= $1 |
| NOSPEC | 1 | start | |
| NOSPEC | 1 | start | |
| NOSPEC | 2 | end | |
| NOSPEC | 2 | end | |
| NOSPEC | 3 | bounce->addr | |
| USER_DATA | 1 | start | 0-18446744073709551614[c] |
| USER_DATA | 2 | end | 0-18446744073709551614[c] |
| USER_DATA | 3 | bounce->addr | 0-18446744073709551614[c] |
| USER_DATA | 3 | bounce->size | 0,4096-18446744073709547520 |
| UNITS | 1 | start | unit_byte |
| UNITS | 2 | end | unit_byte |
| LOCK2 | 0 | &dmirror->mutex | |
| TYPE_LOCK | (struct dmirror)->mutex |
lib/test_hmm.c dmirror_migrate_to_device() -> dmirror_do_read()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dmirror | 4096-ptr_max |
| PARAM_VALUE | 0 | dmirror->mdevice->zone_device_type | 0-2 |
| PARAM_VALUE | 0 | dmirror->mutex.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | dmirror->mutex.first_waiter | 0,4096-ptr_max |
| PARAM_VALUE | 0 | dmirror->mutex.first_waiter->list.prev->next | 5159360019465732096 |
| PARAM_VALUE | 0 | dmirror->mutex.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 0 | dmirror->mutex.wait_lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | dmirror->mutex.wait_lock.owner | (-1) |
| PARAM_VALUE | 0 | dmirror->mutex.wait_lock.owner_cpu | u32max |
| PARAM_VALUE | 0 | dmirror->notifier.mm | 4096-ptr_max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->context.ldt | 0 |
| PARAM_VALUE | 0 | dmirror->notifier.mm->exe_file | 0 |
| PARAM_VALUE | 0 | dmirror->notifier.mm->exe_file->f_cred->process_keyring->user->qnbytes | s32min-s32max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->exe_file->f_cred->process_keyring->user->qnkeys | s32min-s32max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->exe_file->f_cred->rcu.func | 1-u64max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->exe_file->f_cred->request_key_auth->user->qnbytes | s32min-s32max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->exe_file->f_cred->request_key_auth->user->qnkeys | s32min-s32max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->exe_file->f_cred->session_keyring->user->qnbytes | s32min-s32max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->exe_file->f_cred->session_keyring->user->qnkeys | s32min-s32max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->exe_file->f_cred->thread_keyring->user->qnbytes | s32min-s32max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->exe_file->f_cred->thread_keyring->user->qnkeys | s32min-s32max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->exe_file->f_cred->ucounts->ns->work.entry.next->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->exe_file->f_cred->user_ns->work.entry.next->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->exe_file->f_task_work.func | 5179756662909861888 |
| PARAM_VALUE | 0 | dmirror->notifier.mm->exe_file->f_task_work.next | 0-7661163036167163903,7661163036167163905-u64max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->ioctx_table | 0 |
| PARAM_VALUE | 0 | dmirror->notifier.mm->lru_gen.list.next->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->lru_gen.list.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->mm_cid.pcpu | 0 |
| PARAM_VALUE | 0 | dmirror->notifier.mm->mm_id | 0 |
| PARAM_VALUE | 0 | dmirror->notifier.mm->mm_mt.ma_lock.rlock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | dmirror->notifier.mm->mm_mt.ma_root | 0 |
| PARAM_VALUE | 0 | dmirror->notifier.mm->mmap_lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | dmirror->notifier.mm->mmap_lock.first_waiter->handoff_set | 1 |
| PARAM_VALUE | 0 | dmirror->notifier.mm->mmap_lock.first_waiter->list.next | 2212933610777083904,2624917664208203776 |
| PARAM_VALUE | 0 | dmirror->notifier.mm->mmap_lock.first_waiter->list.prev | 2212933610777083904,2624917664208203776 |
| PARAM_VALUE | 0 | dmirror->notifier.mm->mmap_lock.first_waiter->type | 0-1 |
| PARAM_VALUE | 0 | dmirror->notifier.mm->mmap_lock.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 0 | *dmirror->notifier.mm->exe_file->f_cred->user->uidhash_node.next->pprev | 1-u64max |
| PARAM_VALUE | 1 | start | 0-18446744073709551614 |
| PARAM_VALUE | 2 | end | 0-18446744073709551614 |
| PARAM_VALUE | 3 | bounce | 6158056166249160704 |
| PARAM_VALUE | 3 | bounce->addr | 0-18446744073709551614 |
| PARAM_VALUE | 3 | bounce->cpages | 0 |
| PARAM_VALUE | 3 | bounce->ptr | 1-u64max |
| PARAM_VALUE | 3 | bounce->size | 0,4096-18446744073709547520 |
| BUF_SIZE | 0 | dmirror | s32min-(-2),1-s32max |
| BUF_SIZE | 0 | dmirror | s32min-(-2),1-s32max |
| CAPPED_DATA | 0 | &dmirror->mutex | 1 |
| CAPPED_DATA | 1 | start | 1 |
| CAPPED_DATA | 1 | start | 1 |
| CAPPED_DATA | 2 | end | 1 |
| CAPPED_DATA | 2 | end | 1 |
| DATA_SOURCE | 0 | dmirror | $0 |
| PARAM_COMPARE | 1 | start | <= $2 |
| PARAM_COMPARE | 2 | end | >= $1 |
| PARAM_COMPARE | 2 | end | >= $1 |
| NOSPEC | 1 | start | |
| NOSPEC | 1 | start | |
| NOSPEC | 2 | end | |
| NOSPEC | 2 | end | |
| NOSPEC | 3 | bounce->addr | |
| USER_DATA | 1 | start | 0-18446744073709551614[c] |
| USER_DATA | 2 | end | 0-18446744073709551614[c] |
| USER_DATA | 3 | bounce->addr | 0-18446744073709551614[c] |
| USER_DATA | 3 | bounce->size | 0,4096-18446744073709547520 |
| UNITS | 1 | start | unit_byte |
| UNITS | 2 | end | unit_byte |
| LOCK2 | 0 | &dmirror->mutex | |
| TYPE_LOCK | (struct dmirror)->mutex |
lib/test_hmm.c dmirror_read() -> dmirror_do_read()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dmirror | 1-u64max |
| PARAM_VALUE | 0 | dmirror->mutex.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | dmirror->mutex.first_waiter | 0,4096-ptr_max |
| PARAM_VALUE | 0 | dmirror->mutex.first_waiter->list.prev->next | 5159360019465732096 |
| PARAM_VALUE | 0 | dmirror->mutex.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 0 | dmirror->mutex.wait_lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | dmirror->mutex.wait_lock.owner | (-1) |
| PARAM_VALUE | 0 | dmirror->mutex.wait_lock.owner_cpu | u32max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->mmap_lock.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | dmirror->notifier.mm->mmap_lock.first_waiter->type | 0-1 |
| PARAM_VALUE | 1 | start | 0-18446744073709551614 |
| PARAM_VALUE | 2 | end | 0-18446744073709551614 |
| PARAM_VALUE | 3 | bounce | 8936923392682745856 |
| PARAM_VALUE | 3 | bounce->addr | 0-18446744073709551614 |
| PARAM_VALUE | 3 | bounce->cpages | 0 |
| PARAM_VALUE | 3 | bounce->ptr | 1-u64max |
| PARAM_VALUE | 3 | bounce->size | 0,4096-18446744073709547520 |
| BUF_SIZE | 0 | dmirror | s32min-(-2),1-s32max |
| BUF_SIZE | 0 | dmirror | s32min-(-2),1-s32max |
| CAPPED_DATA | 0 | &dmirror->mutex | 1 |
| CAPPED_DATA | 1 | start | 1 |
| CAPPED_DATA | 1 | start | 1 |
| CAPPED_DATA | 2 | end | 1 |
| CAPPED_DATA | 2 | end | 1 |
| DATA_SOURCE | 0 | dmirror | $0 |
| NOSPEC | 1 | start | |
| NOSPEC | 1 | start | |
| NOSPEC | 2 | end | |
| NOSPEC | 2 | end | |
| USER_DATA | 1 | start | 0-18446744073709551614[c] |
| USER_DATA | 2 | end | 0-18446744073709551614[c] |
| USER_DATA | 3 | bounce->addr | 0-18446744073709551614[c] |
| USER_DATA | 3 | bounce->size | 0,4096-18446744073709547520 |
| UNITS | 1 | start | unit_byte |
| UNITS | 2 | end | unit_byte |
| LOCK2 | 0 | &dmirror->mutex | |
| TYPE_LOCK | (struct dmirror)->mutex |
lib/test_hmm.c dmirror_read_unlocked() -> dmirror_do_read()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dmirror | 1-u64max |
| PARAM_VALUE | 0 | dmirror->mutex.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | dmirror->mutex.first_waiter | 0,4096-ptr_max |
| PARAM_VALUE | 0 | dmirror->mutex.first_waiter->list.prev->next | 5159360019465732096 |
| PARAM_VALUE | 0 | dmirror->mutex.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 0 | dmirror->mutex.wait_lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | dmirror->mutex.wait_lock.owner | (-1) |
| PARAM_VALUE | 0 | dmirror->mutex.wait_lock.owner_cpu | u32max |
| PARAM_VALUE | 0 | dmirror->notifier.mm->mmap_lock.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | dmirror->notifier.mm->mmap_lock.first_waiter->type | 0-1 |
| PARAM_VALUE | 1 | start | 0-18446744073709551614 |
| PARAM_VALUE | 2 | end | 0-18446744073709551614 |
| PARAM_VALUE | 3 | bounce | 3700803717768028160 |
| PARAM_VALUE | 3 | bounce->addr | 0-18446744073709551614 |
| PARAM_VALUE | 3 | bounce->cpages | 0 |
| PARAM_VALUE | 3 | bounce->ptr | 1-u64max |
| PARAM_VALUE | 3 | bounce->size | 0,4096-18446744073709547520 |
| BUF_SIZE | 0 | dmirror | s32min-(-2),1-s32max |
| BUF_SIZE | 0 | dmirror | s32min-(-2),1-s32max |
| CAPPED_DATA | 0 | &dmirror->mutex | 1 |
| CAPPED_DATA | 1 | start | 1 |
| CAPPED_DATA | 1 | start | 1 |
| CAPPED_DATA | 2 | end | 1 |
| CAPPED_DATA | 2 | end | 1 |
| DATA_SOURCE | 0 | dmirror | $0 |
| NOSPEC | 1 | start | |
| NOSPEC | 1 | start | |
| NOSPEC | 2 | end | |
| NOSPEC | 2 | end | |
| USER_DATA | 1 | start | 0-18446744073709551614[c] |
| USER_DATA | 2 | end | 0-18446744073709551614[c] |
| USER_DATA | 3 | bounce->addr | 0-18446744073709551614[c] |
| USER_DATA | 3 | bounce->size | 0,4096-18446744073709547520 |
| UNITS | 1 | start | unit_byte |
| UNITS | 2 | end | unit_byte |
| LOCK2 | 0 | &dmirror->mutex | |
| TYPE_LOCK | (struct dmirror)->mutex |