Defined in 1 files as a function:

Referenced in 6 files:

Smatch caller information:

arch/x86/kvm/svm/pmu.c amd_pmc_is_disabled_in_current_mode() -> kvm_vcpu_has_mediated_pmu()

Type Parameter Key Value

arch/x86/kvm/svm/pmu.c amd_pmu_refresh() -> kvm_vcpu_has_mediated_pmu()

Type Parameter Key Value
PARAM_VALUE 0 vcpu 4096-ptr_max
DATA_SOURCE 0 vcpu $0

arch/x86/kvm/svm/pmu.c pmc_read_counter() -> kvm_vcpu_has_mediated_pmu()

Type Parameter Key Value

arch/x86/kvm/pmu.c kvm_handle_guest_mediated_pmi() -> kvm_vcpu_has_mediated_pmu()

Type Parameter Key Value
PARAM_VALUE 0 vcpu 4096-ptr_max
DATA_SOURCE 0 vcpu r kvm_get_running_vcpu

arch/x86/kvm/pmu.c kvm_mediated_pmu_load() -> kvm_vcpu_has_mediated_pmu()

Type Parameter Key Value
PARAM_VALUE 0 vcpu 4096-ptr_max
BUF_SIZE 0 vcpu s32min-(-2),1-s32max
BUF_SIZE 0 vcpu s32min-(-2),1-s32max
CAPPED_DATA 0 vcpu->arch.host_debugctl 1
CAPPED_DATA 0 vcpu->kvm 1
CAPPED_DATA 0 vcpu->kvm->mm 1
CAPPED_DATA 0 vcpu->kvm->srcu.srcu_ctrp 1
DATA_SOURCE 0 vcpu $0
NOSPEC 0 vcpu->arch.xen.runstate2_cache.pfn
NOSPEC 0 vcpu->arch.xen.runstate_cache.pfn
PREEMPT_ADD
HOST_DATA 0 vcpu->arch.host_debugctl 0-u64max
USER_DATA 0 vcpu->arch.apic->lapic_timer.expired_tscdeadline 0-u64max
USER_DATA 0 vcpu->arch.apic->lapic_timer.tscdeadline 0-u64max
USER_DATA 0 vcpu->arch.apic->sipi_vector 1-255[c]
USER_DATA 0 vcpu->arch.cr8 0-14
USER_DATA 0 vcpu->arch.exception.payload 0-u64max
USER_DATA 0 vcpu->arch.l1_tsc_offset 0-u64max
USER_DATA 0 vcpu->arch.mmu->root.pgd 0-u64max
USER_DATA 0 vcpu->arch.tsc_offset 0-u64max
USER_DATA 0 vcpu->arch.xen.runstate2_cache.gpa 0-18446744073709551614[c]
USER_DATA 0 vcpu->arch.xen.runstate2_cache.pfn 0-4503599627370494[c]
USER_DATA 0 vcpu->arch.xen.runstate2_cache.uhva 0-u64max[c]
USER_DATA 0 vcpu->arch.xen.runstate_cache.gpa 0-18446744073709551614[c]
USER_DATA 0 vcpu->arch.xen.runstate_cache.pfn 0-4503599627370494[c]
USER_DATA 0 vcpu->arch.xen.runstate_cache.uhva 0-u64max[c]
USER_DATA 0 *vcpu->arch.emulate_ctxt->fetch.end 0-255
USER_DATA 0 *vcpu->arch.sev_pio_data s64min-s64max
NO_OVERFLOW_SIMPLE 0 vcpu->arch.mmu_external_spt_cache.capacity
NO_OVERFLOW_SIMPLE 0 vcpu->arch.mmu_external_spt_cache.kmem_cache->object_size
NO_OVERFLOW_SIMPLE 0 vcpu->arch.mmu_external_spt_cache.kmem_cache->sheaf_capacity
NO_OVERFLOW_SIMPLE 0 vcpu->arch.mmu_external_spt_cache.nobjs
NO_OVERFLOW_SIMPLE 0 vcpu->arch.mmu_page_header_cache.capacity
NO_OVERFLOW_SIMPLE 0 vcpu->arch.mmu_page_header_cache.kmem_cache->object_size
NO_OVERFLOW_SIMPLE 0 vcpu->arch.mmu_page_header_cache.nobjs
NO_OVERFLOW_SIMPLE 0 vcpu->arch.mmu_pte_list_desc_cache.capacity
NO_OVERFLOW_SIMPLE 0 vcpu->arch.mmu_pte_list_desc_cache.kmem_cache->object_size
NO_OVERFLOW_SIMPLE 0 vcpu->arch.mmu_pte_list_desc_cache.kmem_cache->sheaf_capacity
NO_OVERFLOW_SIMPLE 0 vcpu->arch.mmu_pte_list_desc_cache.nobjs
NO_OVERFLOW_SIMPLE 0 vcpu->arch.mmu_shadow_page_cache.capacity
NO_OVERFLOW_SIMPLE 0 vcpu->arch.mmu_shadow_page_cache.kmem_cache->object_size
NO_OVERFLOW_SIMPLE 0 vcpu->arch.mmu_shadow_page_cache.nobjs
NO_OVERFLOW_SIMPLE 0 vcpu->arch.mmu_shadowed_info_cache.capacity
NO_OVERFLOW_SIMPLE 0 vcpu->arch.mmu_shadowed_info_cache.kmem_cache->object_size
NO_OVERFLOW_SIMPLE 0 vcpu->arch.mmu_shadowed_info_cache.nobjs
NO_OVERFLOW_SIMPLE 0 vcpu->arch.pio.count
NO_OVERFLOW_SIMPLE 0 vcpu->arch.pio.size
NO_OVERFLOW_SIMPLE 0 vcpu->run->io.count
NO_OVERFLOW_SIMPLE 0 vcpu->run->io.size
USER_PTR 0 vcpu->arch.emulate_ctxt->fetch.end
USER_PTR 0 vcpu->arch.pdptrs
LOCK2 irq
LOCK2 0 &vcpu->mutex
TYPE_LOCK (struct kvm_vcpu)->mutex

arch/x86/kvm/pmu.c kvm_mediated_pmu_put() -> kvm_vcpu_has_mediated_pmu()

Type Parameter Key Value
DATA_SOURCE 0 vcpu $0

arch/x86/kvm/pmu.c kvm_need_any_pmc_intercept() -> kvm_vcpu_has_mediated_pmu()

Type Parameter Key Value
PARAM_VALUE 0 vcpu 4096-ptr_max
DATA_SOURCE 0 vcpu $0

arch/x86/kvm/pmu.c kvm_pmu_incr_counter() -> kvm_vcpu_has_mediated_pmu()

Type Parameter Key Value
PARAM_VALUE 0 vcpu 4096-ptr_max
LOCK2 &vcpu->kvm->srcu
HALF_LOCKED2 &vcpu->mutex
TYPE_LOCK (struct kvm)->srcu

arch/x86/kvm/pmu.c kvm_pmu_refresh() -> kvm_vcpu_has_mediated_pmu()

Type Parameter Key Value
PARAM_VALUE 0 vcpu 4096-ptr_max
BUF_SIZE 0 vcpu s32min-(-1),1-s32max
BUF_SIZE 0 vcpu s32min-(-1),1-s32max
BUF_SIZE 0 vcpu->arch.cpuid_entries (-1)-0,40-10240
BUF_SIZE 0 vcpu->arch.mce_banks (-1),8
BUF_SIZE 0 vcpu->arch.mci_ctl2_banks (-1),8
CAPPED_DATA 0 vcpu 1
DATA_SOURCE 0 vcpu $0
NOSPEC 0 vcpu->arch.cpuid_nent
NOSPEC 0 vcpu->vcpu_id
MEM_ZERO 0 vcpu->arch.pmu.pmc_has_mode_specific_enables
USER_DATA 0 vcpu->arch.cpuid_entries->eax 0-u32max
USER_DATA 0 vcpu->arch.cpuid_entries->ebx 0-u32max
USER_DATA 0 vcpu->arch.cpuid_entries->ecx 0-u32max
USER_DATA 0 vcpu->arch.cpuid_entries->edx 0-u32max
USER_DATA 0 vcpu->arch.cpuid_entries->flags 0-u32max
USER_DATA 0 vcpu->arch.cpuid_entries->function 0-u32max
USER_DATA 0 vcpu->arch.cpuid_entries->index 0-u32max
USER_DATA 0 vcpu->arch.cpuid_nent 0-256[c]
USER_DATA 0 vcpu->arch.guest_supported_xcr0 0-393983[c]
USER_DATA 0 vcpu->arch.guest_supported_xss 0-6144[c]
USER_DATA 0 vcpu->arch.is_amd_compatible 0[c]
USER_DATA 0 vcpu->arch.l1_tsc_offset 0-u64max
USER_DATA 0 vcpu->arch.maxphyaddr 1-255[c]
USER_DATA 0 vcpu->arch.pv_cpuid.features 0-u32max
USER_DATA 0 vcpu->arch.pv_time.kvm->arch.has_private_mem 0[c]
USER_DATA 0 vcpu->arch.pv_time.kvm->arch.pre_fault_allowed 0-1
USER_DATA 0 vcpu->arch.pv_time.kvm->arch.vm_type 0-5
USER_DATA 0 vcpu->arch.tsc_offset 0-u64max
USER_DATA 0 vcpu->arch.xen.runstate2_cache.kvm->arch.has_private_mem 0[c]
USER_DATA 0 vcpu->arch.xen.runstate2_cache.kvm->arch.noncoherent_dma_count.counter 0
USER_DATA 0 vcpu->arch.xen.runstate2_cache.kvm->arch.pre_fault_allowed 1[c]
USER_DATA 0 vcpu->arch.xen.runstate2_cache.kvm->arch.vm_type 0-1
USER_DATA 0 vcpu->arch.xen.runstate_cache.kvm->arch.has_private_mem 0[c]
USER_DATA 0 vcpu->arch.xen.runstate_cache.kvm->arch.noncoherent_dma_count.counter 0
USER_DATA 0 vcpu->arch.xen.runstate_cache.kvm->arch.pre_fault_allowed 1[c]
USER_DATA 0 vcpu->arch.xen.runstate_cache.kvm->arch.vm_type 0-1
USER_DATA 0 vcpu->arch.xen.vcpu_info_cache.kvm->arch.has_private_mem 0[c]
USER_DATA 0 vcpu->arch.xen.vcpu_info_cache.kvm->arch.noncoherent_dma_count.counter 0
USER_DATA 0 vcpu->arch.xen.vcpu_info_cache.kvm->arch.pre_fault_allowed 1[c]
USER_DATA 0 vcpu->arch.xen.vcpu_info_cache.kvm->arch.vm_type 0-1
USER_DATA 0 vcpu->arch.xen.vcpu_time_info_cache.kvm->arch.has_private_mem 0[c]
USER_DATA 0 vcpu->arch.xen.vcpu_time_info_cache.kvm->arch.noncoherent_dma_count.counter 0
USER_DATA 0 vcpu->arch.xen.vcpu_time_info_cache.kvm->arch.pre_fault_allowed 1[c]
USER_DATA 0 vcpu->arch.xen.vcpu_time_info_cache.kvm->arch.vm_type 0-1
USER_DATA 0 vcpu->vcpu_id 1-16383[c]
USER_PTR 0 vcpu->arch.cpuid_entries
USER_PTR 0 vcpu->arch.cpuid_entries->padding

arch/x86/kvm/pmu.c kvm_pmu_refresh() -> kvm_vcpu_has_mediated_pmu()

Type Parameter Key Value
PARAM_VALUE 0 vcpu 4096-ptr_max
BUF_SIZE 0 vcpu s32min-(-1),1-s32max
BUF_SIZE 0 vcpu s32min-(-1),1-s32max
BUF_SIZE 0 vcpu->arch.cpuid_entries (-1)-0,40-10240
BUF_SIZE 0 vcpu->arch.mce_banks (-1),8
BUF_SIZE 0 vcpu->arch.mci_ctl2_banks (-1),8
CAPPED_DATA 0 vcpu 1
DATA_SOURCE 0 vcpu $0
NOSPEC 0 vcpu->arch.cpuid_nent
NOSPEC 0 vcpu->vcpu_id
MEM_ZERO 0 vcpu->arch.pmu.pmc_has_mode_specific_enables
USER_DATA 0 vcpu->arch.cpuid_entries->eax 0-u32max
USER_DATA 0 vcpu->arch.cpuid_entries->ebx 0-u32max
USER_DATA 0 vcpu->arch.cpuid_entries->ecx 0-u32max
USER_DATA 0 vcpu->arch.cpuid_entries->edx 0-u32max
USER_DATA 0 vcpu->arch.cpuid_entries->flags 0-u32max
USER_DATA 0 vcpu->arch.cpuid_entries->function 0-u32max
USER_DATA 0 vcpu->arch.cpuid_entries->index 0-u32max
USER_DATA 0 vcpu->arch.cpuid_nent 0-256[c]
USER_DATA 0 vcpu->arch.guest_supported_xcr0 0-393983[c]
USER_DATA 0 vcpu->arch.guest_supported_xss 0-6144[c]
USER_DATA 0 vcpu->arch.is_amd_compatible 0[c]
USER_DATA 0 vcpu->arch.l1_tsc_offset 0-u64max
USER_DATA 0 vcpu->arch.maxphyaddr 1-255[c]
USER_DATA 0 vcpu->arch.pv_cpuid.features 0-u32max
USER_DATA 0 vcpu->arch.pv_time.kvm->arch.has_private_mem 0[c]
USER_DATA 0 vcpu->arch.pv_time.kvm->arch.pre_fault_allowed 0-1
USER_DATA 0 vcpu->arch.pv_time.kvm->arch.vm_type 0-5
USER_DATA 0 vcpu->arch.tsc_offset 0-u64max
USER_DATA 0 vcpu->arch.xen.runstate2_cache.kvm->arch.has_private_mem 0[c]
USER_DATA 0 vcpu->arch.xen.runstate2_cache.kvm->arch.noncoherent_dma_count.counter 0
USER_DATA 0 vcpu->arch.xen.runstate2_cache.kvm->arch.pre_fault_allowed 1[c]
USER_DATA 0 vcpu->arch.xen.runstate2_cache.kvm->arch.vm_type 0-1
USER_DATA 0 vcpu->arch.xen.runstate_cache.kvm->arch.has_private_mem 0[c]
USER_DATA 0 vcpu->arch.xen.runstate_cache.kvm->arch.noncoherent_dma_count.counter 0
USER_DATA 0 vcpu->arch.xen.runstate_cache.kvm->arch.pre_fault_allowed 1[c]
USER_DATA 0 vcpu->arch.xen.runstate_cache.kvm->arch.vm_type 0-1
USER_DATA 0 vcpu->arch.xen.vcpu_info_cache.kvm->arch.has_private_mem 0[c]
USER_DATA 0 vcpu->arch.xen.vcpu_info_cache.kvm->arch.noncoherent_dma_count.counter 0
USER_DATA 0 vcpu->arch.xen.vcpu_info_cache.kvm->arch.pre_fault_allowed 1[c]
USER_DATA 0 vcpu->arch.xen.vcpu_info_cache.kvm->arch.vm_type 0-1
USER_DATA 0 vcpu->arch.xen.vcpu_time_info_cache.kvm->arch.has_private_mem 0[c]
USER_DATA 0 vcpu->arch.xen.vcpu_time_info_cache.kvm->arch.noncoherent_dma_count.counter 0
USER_DATA 0 vcpu->arch.xen.vcpu_time_info_cache.kvm->arch.pre_fault_allowed 1[c]
USER_DATA 0 vcpu->arch.xen.vcpu_time_info_cache.kvm->arch.vm_type 0-1
USER_DATA 0 vcpu->vcpu_id 1-16383[c]
USER_PTR 0 vcpu->arch.cpuid_entries
USER_PTR 0 vcpu->arch.cpuid_entries->padding

arch/x86/kvm/pmu.c kvm_pmu_set_msr() -> kvm_vcpu_has_mediated_pmu()

Type Parameter Key Value
PARAM_VALUE 0 vcpu 4096-ptr_max
CAPPED_DATA 0 vcpu->kvm->arch.xen.hvm_config.msr 1
DATA_SOURCE 0 vcpu $0

arch/x86/kvm/pmu.c pmc_read_counter() -> kvm_vcpu_has_mediated_pmu()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING

arch/x86/kvm/pmu.c pmc_write_counter() -> kvm_vcpu_has_mediated_pmu()

Type Parameter Key Value

arch/x86/kvm/pmu.c reprogram_counter() -> kvm_vcpu_has_mediated_pmu()

Type Parameter Key Value
PARAM_VALUE 0 vcpu 4096-ptr_max
HALF_LOCKED2 &vcpu->kvm->srcu
HALF_LOCKED2 &vcpu->mutex

arch/x86/kvm/vmx/nested.c nested_vmx_merge_pmu_msr_bitmaps() -> kvm_vcpu_has_mediated_pmu()

Type Parameter Key Value
PARAM_VALUE 0 vcpu 4096-ptr_max
DATA_SOURCE 0 vcpu $0
USER_PTR 0 vcpu->arch.hyperv->vp_assist_page.intercept_message
USER_PTR 0 vcpu->arch.hyperv->vp_assist_page.reserved2
USER_PTR 0 vcpu->arch.hyperv->vp_assist_page.reserved3
USER_PTR 0 vcpu->arch.hyperv->vp_assist_page.reserved4
USER_PTR 0 vcpu->arch.hyperv->vp_assist_page.virtualization_fault_information
USER_PTR 0 vcpu->arch.hyperv->vp_assist_page.vtl_ret_actions
USER_PTR 0 vcpu->arch.pdptrs

arch/x86/kvm/vmx/pmu_intel.c pmc_read_counter() -> kvm_vcpu_has_mediated_pmu()

Type Parameter Key Value

arch/x86/kvm/x86.c kvm_pmu_is_fastpath_emulation_allowed() -> kvm_vcpu_has_mediated_pmu()

Type Parameter Key Value
PARAM_VALUE 0 vcpu 4096-ptr_max
DATA_SOURCE 0 vcpu $0

arch/x86/kvm/svm/svm.c svm_recalc_pmu_msr_intercepts() -> kvm_vcpu_has_mediated_pmu()

Type Parameter Key Value
PARAM_VALUE 0 vcpu 4096-ptr_max
DATA_SOURCE 0 vcpu $0

arch/x86/kvm/msrs.c kvm_pmu_is_fastpath_emulation_allowed() -> kvm_vcpu_has_mediated_pmu()

Type Parameter Key Value
PARAM_VALUE 0 vcpu 4096-ptr_max
DATA_SOURCE 0 vcpu $0

arch/x86/kvm/vmx/vmx.c atomic_switch_perf_msrs() -> kvm_vcpu_has_mediated_pmu()

Type Parameter Key Value
PARAM_VALUE 0 vcpu 4096-ptr_max

arch/x86/kvm/vmx/vmx.c vmx_recalc_pmu_msr_intercepts() -> kvm_vcpu_has_mediated_pmu()

Type Parameter Key Value
PARAM_VALUE 0 vcpu 4096-ptr_max
DATA_SOURCE 0 vcpu $0