Defined in 1 files as a function:
Referenced in 4 files:
- arch/x86/kvm/mmu.h
- arch/x86/kvm/mmu/mmu.c
- arch/x86/kvm/mmu/mmu_internal.h, line 180
- arch/x86/kvm/vmx/tdx.c
Smatch caller information:
arch/x86/kvm/mmu/mmu.c kvm_arch_vcpu_pre_fault_memory() -> kvm_gfn_direct_bits()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | kvm | 4096-ptr_max |
| CAPPED_DATA | 0 | kvm->mm | 1 |
| CAPPED_DATA | 0 | kvm->srcu.srcu_ctrp | 1 |
| UNITS | 0 | kvm | unit_byte |
| LOCK2 | &vcpu->mutex | ||
| LOCK2 | 0 | &kvm->srcu | |
| TYPE_LOCK | (struct kvm)->srcu | ||
| TYPE_LOCK | (struct kvm_vcpu)->mutex |
arch/x86/kvm/mmu/mmu.c kvm_is_gfn_alias() -> kvm_gfn_direct_bits()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | kvm | $0 |
| UNITS | 0 | kvm | unit_byte |
| HALF_LOCKED2 | &vcpu->mutex | ||
| HALF_LOCKED2 | 0 | &kvm->srcu |
arch/x86/kvm/mmu/mmu.c kvm_mmu_do_page_fault() -> kvm_gfn_direct_bits()
| Type | Parameter | Key | Value |
|---|---|---|---|
| UNITS | 0 | kvm | unit_byte |
| HALF_LOCKED2 | &vcpu->mutex | ||
| HALF_LOCKED2 | 0 | &kvm->srcu |
arch/x86/kvm/x86.c kvm_is_gfn_alias() -> kvm_gfn_direct_bits()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | kvm | 4096-ptr_max |
| BUF_SIZE | 0 | kvm | s32min-(-1),1-s32max |
| BUF_SIZE | 0 | kvm | s32min-(-1),1-s32max |
| DATA_SOURCE | 0 | kvm | $0 |
| STR_LEN | 0 | kvm->arch.vm_type | (-1) |
| STR_LEN | 0 | kvm->stats_id | (-1) |
| 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.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.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->nr_memslot_pages | |
| UNITS | 0 | kvm | unit_byte |
| LOCK2 | 0 | &kvm->slots_arch_lock | |
| HALF_LOCKED2 | _T->lock | ||
| HALF_LOCKED2 | 0 | &kvm->lock | |
| HALF_LOCKED2 | 0 | &kvm->slots_lock | |
| TYPE_LOCK | (struct kvm)->slots_arch_lock |
arch/x86/kvm/mmu/tdp_mmu.c kvm_gfn_root_bits() -> kvm_gfn_direct_bits()
| Type | Parameter | Key | Value |
|---|---|---|---|
| BUF_SIZE | 0 | kvm | s32min-(-1),1-s32max |
| BUF_SIZE | 0 | kvm | s32min-(-1),1-s32max |
| 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 | |
| PREEMPT_ADD | |||
| 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.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.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_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_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->debugfs_dentry->d_fsdata | |
| NO_OVERFLOW_SIMPLE | 0 | kvm->debugfs_dentry->d_fsdata->d_fsdata | |
| 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->srcu.srcu_sup | |
| NO_OVERFLOW_SIMPLE | 0 | kvm->stats_id | |
| UNITS | 0 | kvm | unit_byte |
| HALF_LOCKED2 | rcu_read | ||
| HALF_LOCKED2 | 0 | &kvm->arch.apic_map_lock | |
| HALF_LOCKED2 | 0 | &kvm->arch.apicv_update_lock | |
| HALF_LOCKED2 | 0 | &kvm->lock | |
| HALF_LOCKED2 | 0 | &kvm->mmu_lock | |
| HALF_LOCKED2 | 0 | &kvm->slots_lock | |
| HALF_LOCKED2 | 0 | &kvm->srcu |
arch/x86/kvm/mmu/tdp_mmu.c kvm_is_addr_direct() -> kvm_gfn_direct_bits()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | kvm | 4096-ptr_max |
| DATA_SOURCE | 0 | kvm | $0 |
| UNITS | 0 | kvm | unit_byte |
| HALF_LOCKED2 | &file->f_mapping->invalidate_lock | ||
| HALF_LOCKED2 | &vcpu->mutex | ||
| HALF_LOCKED2 | _T->lock | ||
| HALF_LOCKED2 | 0 | &kvm->mmu_lock | |
| HALF_LOCKED2 | 0 | &kvm->srcu |
arch/x86/kvm/vmx/tdx.c __tdx_map_gpa() -> kvm_gfn_direct_bits()
| Type | Parameter | Key | Value |
|---|---|---|---|
| UNITS | 0 | kvm | unit_byte |
| HALF_LOCKED2 | &vcpu->kvm->srcu | ||
| HALF_LOCKED2 | &vcpu->mutex |
arch/x86/kvm/vmx/tdx.c kvm_is_addr_direct() -> kvm_gfn_direct_bits()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | kvm | 4096-ptr_max |
| DATA_SOURCE | 0 | kvm | $0 |
| UNITS | 0 | kvm | unit_byte |
| HALF_LOCKED2 | &kvm->lock | ||
| HALF_LOCKED2 | &kvm->slots_lock |
arch/x86/kvm/vmx/tdx.c tdx_emulate_mmio() -> kvm_gfn_direct_bits()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | kvm | 4096-ptr_max |
| UNITS | 0 | kvm | unit_byte |
arch/x86/kvm/vmx/tdx.c tdx_get_quote() -> kvm_gfn_direct_bits()
| Type | Parameter | Key | Value |
|---|---|---|---|
| UNITS | 0 | kvm | unit_byte |
arch/x86/kvm/vmx/tdx.c tdx_load_mmu_pgd() -> kvm_gfn_direct_bits()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | kvm | 4096-ptr_max |
| UNITS | 0 | kvm | unit_byte |
arch/x86/kvm/vmx/tdx.c tdx_read_cpuid() -> kvm_gfn_direct_bits()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | kvm | 4096-ptr_max |
| UNITS | 0 | kvm | unit_byte |
| LOCK2 | &vcpu->mutex | ||
| TYPE_LOCK | (struct kvm_vcpu)->mutex |
arch/x86/kvm/vmx/vmx.c kvm_is_addr_direct() -> kvm_gfn_direct_bits()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | kvm | 4096-ptr_max |
| DATA_SOURCE | 0 | kvm | $0 |
| UNITS | 0 | kvm | unit_byte |