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