Defined in 1 files as a prototype:

Defined in 2 files as a function:

Referenced in 1 files:

Smatch caller information:

arch/x86/kvm/../../../virt/kvm/async_pf.c async_pf_execute() -> kvm_arch_async_page_present_queued()

Type Parameter Key Value
PARAM_VALUE 0 vcpu->async_pf.done.next 4096-ptr_max
PARAM_VALUE 0 vcpu->async_pf.done.prev 4096-ptr_max
PARAM_VALUE 0 vcpu->async_pf.done.prev->next 4096-ptr_max
PARAM_VALUE 0 vcpu->async_pf.done.prev->next->next 4096-ptr_max
PARAM_VALUE 0 vcpu->async_pf.lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 vcpu->kvm 4096-ptr_max
PARAM_VALUE 0 vcpu->kvm->mm 4096-ptr_max
PARAM_VALUE 0 vcpu->kvm->mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vcpu->kvm->mm->mmap_lock.first_waiter->type 0-1
CAPPED_DATA 0 &vcpu->async_pf.done 1
PARAM_COMPARE 0 &vcpu->async_pf.done == $0->async_pf.done.next
NOCHECK_CALL
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &pool->lock

arch/x86/kvm/../../../virt/kvm/async_pf.c kvm_async_pf_wakeup_all() -> kvm_arch_async_page_present_queued()

Type Parameter Key Value
PARAM_VALUE 0 vcpu 4096-ptr_max
PARAM_VALUE 0 vcpu->async_pf.done.next 4096-ptr_max
PARAM_VALUE 0 vcpu->async_pf.done.prev 4096-ptr_max
PARAM_VALUE 0 vcpu->async_pf.done.prev->next 4096-ptr_max
PARAM_VALUE 0 vcpu->async_pf.done.prev->next->next 4096-ptr_max
PARAM_VALUE 0 vcpu->async_pf.lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 vcpu->kvm 4096-ptr_max
PARAM_VALUE 0 vcpu->kvm->arch.xen.hvm_config.msr 1-u32max
CAPPED_DATA 0 vcpu->async_pf.done.next 1
CAPPED_DATA 0 vcpu->kvm->arch.xen.hvm_config.msr 1
CAPPED_DATA 0 &vcpu->async_pf.done 1
DATA_SOURCE 0 vcpu $0
PARAM_COMPARE 0 &vcpu->async_pf.done == $0->async_pf.done.next
BIT_INFO 0 vcpu->arch.apf.msr_en_val 0x0,0xffffffffffffffcf
NOCHECK_CALL