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 |