Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

arch/x86/kvm/mmu/mmu.c __kvm_mmu_prepare_zap_page() -> sp_has_gptes()

Type Parameter Key Value
PARAM_VALUE 0 sp 4096-ptr_max
DATA_SOURCE 0 sp $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &kvm->mmu_lock
HALF_LOCKED2 &kvm->srcu
HALF_LOCKED2 global &srcu

arch/x86/kvm/mmu/mmu.c __kvm_mmu_unprotect_gfn_and_retry() -> sp_has_gptes()

Type Parameter Key Value
PARAM_VALUE 0 sp 4096-ptr_max
CAPPED_DATA 0 sp->gfn 1
LOCK2 &kvm->mmu_lock
TYPE_LOCK (struct kvm)->mmu_lock

arch/x86/kvm/mmu/mmu.c kvm_mmu_alloc_shadow_page() -> sp_has_gptes()

Type Parameter Key Value
PARAM_VALUE 0 sp 4096-ptr_max
CAPPED_DATA 0 sp->spt 1
DATA_SOURCE 0 sp r kvm_mmu_memory_cache_alloc
NOSPEC 0 sp->gfn
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 sp->gfn 0-4503599627370495[c]
HALF_LOCKED2 &kvm->arch.apic_map_lock
HALF_LOCKED2 &kvm->arch.apicv_update_lock
HALF_LOCKED2 &kvm->lock
HALF_LOCKED2 &kvm->mmu_lock
HALF_LOCKED2 &kvm->slots_lock
HALF_LOCKED2 &kvm->srcu
HALF_LOCKED2 &vcpu->kvm->mmu_lock

arch/x86/kvm/mmu/mmu.c kvm_mmu_track_write() -> sp_has_gptes()

Type Parameter Key Value
PARAM_VALUE 0 sp 4096-ptr_max
CAPPED_DATA 0 sp->gfn 1
LOCK2 &vcpu->kvm->mmu_lock
TYPE_LOCK (struct kvm)->mmu_lock

arch/x86/kvm/mmu/mmu.c kvm_mmu_zap_memslot_pages_and_flush() -> sp_has_gptes()

Type Parameter Key Value
PARAM_VALUE 0 sp 4096-ptr_max
CAPPED_DATA 0 sp->gfn 1
RX_PATH
TASK_NOT_RUNNING
LOCK2 &kvm->mmu_lock
HALF_LOCKED2 &kvm->lock
HALF_LOCKED2 &kvm->slots_lock
HALF_LOCKED2 _T->lock
TYPE_LOCK (struct kvm)->mmu_lock

arch/x86/kvm/mmu/mmu.c mmu_try_to_unsync_pages() -> sp_has_gptes()

Type Parameter Key Value
PARAM_VALUE 0 sp 4096-ptr_max
CAPPED_DATA 0 sp->gfn 1
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &kvm->arch.mmu_unsync_pages_lock
HALF_LOCKED2 &kvm->mmu_lock
HALF_LOCKED2 &kvm->srcu
HALF_LOCKED2 &vcpu->mutex
HALF_LOCKED2 rcu_read