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() -> is_obsolete_sp()

Type Parameter Key Value
PARAM_VALUE 0 kvm 4096-ptr_max
PARAM_VALUE 1 sp 4096-ptr_max
BUF_SIZE 0 kvm s32min-(-1),1-s32max
BUF_SIZE 0 kvm s32min-(-1),1-s32max
CAPPED_DATA 0 kvm 1
DATA_SOURCE 0 kvm $0
DATA_SOURCE 1 sp $1
STR_LEN 0 kvm->arch.vm_type (-1)
STR_LEN 0 kvm->stats_id (-1),47
NOSPEC 0 kvm->arch.n_max_mmu_pages
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 kvm->arch.has_private_mem 0[c]
USER_DATA 0 kvm->arch.n_max_mmu_pages 64-u64max[c]
USER_DATA 0 kvm->arch.nr_reserved_ioapic_pins 0-255
USER_DATA 0 kvm->arch.pre_fault_allowed 0-1
USER_DATA 0 kvm->arch.vm_type 0-31
USER_DATA 0 kvm->arch.xen.shinfo_cache.kvm->arch.has_private_mem 0[c]
USER_DATA 0 kvm->arch.xen.shinfo_cache.kvm->arch.pre_fault_allowed 0-1
USER_DATA 0 kvm->arch.xen.shinfo_cache.kvm->arch.vm_type 0-31
USER_DATA 0 kvm->mmu_invalidate_range_start 0-9007199254740990[c]
NO_OVERFLOW_SIMPLE 0 kvm->arch.hv_pa_pg
NO_OVERFLOW_SIMPLE 0 kvm->arch.nx_huge_page_recovery_thread
NO_OVERFLOW_SIMPLE 0 kvm->arch.nx_huge_page_recovery_thread->task->dl.dl_runtime
NO_OVERFLOW_SIMPLE 0 kvm->arch.split_desc_cache.capacity
NO_OVERFLOW_SIMPLE 0 kvm->arch.split_desc_cache.kmem_cache->sheaf_capacity
NO_OVERFLOW_SIMPLE 0 kvm->arch.split_desc_cache.nobjs
NO_OVERFLOW_SIMPLE 0 kvm->arch.split_desc_cache.objects
NO_OVERFLOW_SIMPLE 0 kvm->arch.split_page_header_cache.capacity
NO_OVERFLOW_SIMPLE 0 kvm->arch.split_page_header_cache.kmem_cache->sheaf_capacity
NO_OVERFLOW_SIMPLE 0 kvm->arch.split_page_header_cache.nobjs
NO_OVERFLOW_SIMPLE 0 kvm->arch.split_page_header_cache.objects
NO_OVERFLOW_SIMPLE 0 kvm->arch.split_shadow_page_cache.capacity
NO_OVERFLOW_SIMPLE 0 kvm->arch.split_shadow_page_cache.kmem_cache->sheaf_capacity
NO_OVERFLOW_SIMPLE 0 kvm->arch.split_shadow_page_cache.nobjs
NO_OVERFLOW_SIMPLE 0 kvm->arch.split_shadow_page_cache.objects
NO_OVERFLOW_SIMPLE 0 kvm->debugfs_dentry->d_fsdata
NO_OVERFLOW_SIMPLE 0 kvm->debugfs_dentry->d_fsdata->d_fsdata
NO_OVERFLOW_SIMPLE 0 kvm->debugfs_stat_data
NO_OVERFLOW_SIMPLE 0 kvm->irq_srcu.sda
NO_OVERFLOW_SIMPLE 0 kvm->irq_srcu.srcu_sup
NO_OVERFLOW_SIMPLE 0 kvm->mm
NO_OVERFLOW_SIMPLE 0 kvm->mm->context.ldt
NO_OVERFLOW_SIMPLE 0 kvm->mm->context.ldt->entries
NO_OVERFLOW_SIMPLE 0 kvm->mm->mm_cid.pcpu
NO_OVERFLOW_SIMPLE 0 kvm->mm->notifier_subscriptions
NO_OVERFLOW_SIMPLE 0 kvm->mm->sc_stat.pcpu_sched
NO_OVERFLOW_SIMPLE 0 kvm->nr_memslot_pages
NO_OVERFLOW_SIMPLE 0 kvm->srcu.sda
NO_OVERFLOW_SIMPLE 0 kvm->stats_id
UNITS 0 kvm unit_byte
HALF_LOCKED2 global &srcu
HALF_LOCKED2 0 &kvm->arch.apic_map_lock
HALF_LOCKED2 0 &kvm->arch.apicv_update_lock
HALF_LOCKED2 0 &kvm->arch.track_notifier_head.track_srcu
HALF_LOCKED2 0 &kvm->lock
HALF_LOCKED2 0 &kvm->mmu_lock
HALF_LOCKED2 0 &kvm->slots_arch_lock
HALF_LOCKED2 0 &kvm->slots_lock
HALF_LOCKED2 0 &kvm->srcu

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

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

arch/x86/kvm/mmu/mmu.c is_obsolete_root() -> is_obsolete_sp()

Type Parameter Key Value
PARAM_VALUE 1 sp 1-u64max
DATA_SOURCE 0 kvm $0
DATA_SOURCE 1 sp r root_to_sp
PREEMPT_ADD
UNITS 0 kvm unit_byte
HALF_LOCKED2 &vcpu->mutex
HALF_LOCKED2 0 &kvm->srcu

arch/x86/kvm/mmu/mmu.c is_page_fault_stale() -> is_obsolete_sp()

Type Parameter Key Value
PARAM_VALUE 0 kvm 4096-ptr_max
PARAM_VALUE 1 sp 1-u64max
DATA_SOURCE 1 sp r root_to_sp
PREEMPT_ADD
UNITS 0 kvm unit_byte
LOCK2 0 &kvm->mmu_lock
HALF_LOCKED2 &vcpu->mutex
HALF_LOCKED2 0 &kvm->srcu
TYPE_LOCK (struct kvm)->mmu_lock

arch/x86/kvm/mmu/mmu.c kvm_mmu_find_shadow_page() -> is_obsolete_sp()

Type Parameter Key Value
PARAM_VALUE 0 kvm 4096-ptr_max
PARAM_VALUE 1 sp 4096-ptr_max
BUF_SIZE 0 kvm s32min-(-1),1-s32max
BUF_SIZE 0 kvm s32min-(-1),1-s32max
CAPPED_DATA 0 kvm->arch.n_max_mmu_pages 1
DATA_SOURCE 0 kvm $0
STR_LEN 0 kvm->arch.vm_type (-1)
STR_LEN 0 kvm->stats_id (-1),47
NOSPEC 0 kvm->arch.n_max_mmu_pages
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 kvm->arch.has_private_mem 0[c]
USER_DATA 0 kvm->arch.n_max_mmu_pages 64-u64max[c]
USER_DATA 0 kvm->arch.nr_reserved_ioapic_pins 0-255
USER_DATA 0 kvm->arch.pre_fault_allowed 0-1
USER_DATA 0 kvm->mmu_invalidate_range_start 0-9007199254740990[c]
NO_OVERFLOW_SIMPLE 0 kvm->arch.split_desc_cache.capacity
NO_OVERFLOW_SIMPLE 0 kvm->arch.split_desc_cache.nobjs
NO_OVERFLOW_SIMPLE 0 kvm->arch.split_page_header_cache.capacity
NO_OVERFLOW_SIMPLE 0 kvm->arch.split_page_header_cache.nobjs
NO_OVERFLOW_SIMPLE 0 kvm->arch.split_shadow_page_cache.capacity
NO_OVERFLOW_SIMPLE 0 kvm->arch.split_shadow_page_cache.nobjs
NO_OVERFLOW_SIMPLE 0 kvm->nr_memslot_pages
UNITS 0 kvm unit_byte
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
HALF_LOCKED2 &vcpu->kvm->srcu
HALF_LOCKED2 &vcpu->mutex

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

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

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

Type Parameter Key Value
PARAM_VALUE 0 kvm 4096-ptr_max
PARAM_VALUE 1 sp 4096-ptr_max
BUF_SIZE 0 kvm s32min-(-1),1-s32max
BUF_SIZE 0 kvm s32min-(-1),1-s32max
CAPPED_DATA 0 &kvm->arch.active_mmu_pages 1
DATA_SOURCE 0 kvm $0
STR_LEN 0 kvm->arch.vm_type (-1)
STR_LEN 0 kvm->stats_id (-1)
PARAM_COMPARE 0 &kvm->arch.active_mmu_pages != $0->arch.active_mmu_pages.next
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 kvm->arch.has_private_mem 0[c]
USER_DATA 0 kvm->arch.n_max_mmu_pages 64-u64max[c]
USER_DATA 0 kvm->arch.pre_fault_allowed 0-1
NO_OVERFLOW_SIMPLE 0 kvm->nr_memslot_pages
UNITS 0 kvm unit_byte
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 kvm_zap_obsolete_pages() -> is_obsolete_sp()

Type Parameter Key Value
PARAM_VALUE 0 kvm 4096-ptr_max
PARAM_VALUE 0 kvm->arch.mmu_valid_gen 0-1
PARAM_VALUE 1 sp 4096-ptr_max
BUF_SIZE 0 kvm s32min-(-1),1-s32max
BUF_SIZE 0 kvm s32min-(-1),1-s32max
CAPPED_DATA 0 kvm->arch.mmu_valid_gen 1
CAPPED_DATA 0 &kvm->arch.active_mmu_pages 1
DATA_SOURCE 0 kvm $0
FUZZY_MAX 0 kvm->arch.mmu_valid_gen 1
STR_LEN 0 kvm->arch.vm_type (-1)
STR_LEN 0 kvm->stats_id (-1),47
HARD_MAX 0 kvm->arch.mmu_valid_gen 1
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 kvm->arch.has_private_mem 0[c]
USER_DATA 0 kvm->arch.n_max_mmu_pages 64-u64max[c]
USER_DATA 0 kvm->arch.pre_fault_allowed 0-1
USER_DATA 0 kvm->arch.xen.shinfo_cache.kvm->arch.has_private_mem 0[c]
USER_DATA 0 kvm->arch.xen.shinfo_cache.kvm->arch.pre_fault_allowed 0-1
USER_DATA 0 kvm->arch.xen.shinfo_cache.kvm->arch.vm_type 0-31
NO_OVERFLOW_SIMPLE 0 kvm->arch.nx_huge_page_recovery_thread->task->dl.dl_runtime
NO_OVERFLOW_SIMPLE 0 kvm->arch.split_desc_cache.kmem_cache->sheaf_capacity
NO_OVERFLOW_SIMPLE 0 kvm->arch.split_page_header_cache.kmem_cache->sheaf_capacity
NO_OVERFLOW_SIMPLE 0 kvm->arch.split_shadow_page_cache.kmem_cache->sheaf_capacity
NO_OVERFLOW_SIMPLE 0 kvm->debugfs_dentry->d_fsdata
NO_OVERFLOW_SIMPLE 0 kvm->debugfs_dentry->d_fsdata->d_fsdata
NO_OVERFLOW_SIMPLE 0 kvm->nr_memslot_pages
NO_OVERFLOW_SIMPLE 0 kvm->srcu.sda
UNITS 0 kvm unit_byte
LOCK2 0 &kvm->mmu_lock
HALF_LOCKED2 0 &kvm->lock
HALF_LOCKED2 0 &kvm->slots_lock
TYPE_LOCK (struct kvm)->mmu_lock

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

Type Parameter Key Value
PARAM_VALUE 0 kvm 4096-ptr_max
PARAM_VALUE 1 sp 4096-ptr_max
DATA_SOURCE 0 kvm $0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 kvm unit_byte
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