Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

arch/x86/kvm/x86.c __kvm_synchronize_tsc() -> kvm_vcpu_write_tsc_offset()

Type Parameter Key Value
PARAM_VALUE 0 vcpu 4096-ptr_max
PARAM_VALUE 0 vcpu->arch.apic->vcpu->kvm->arch.apicv_update_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vcpu->arch.apic->vcpu->kvm->arch.apicv_update_lock.first_waiter->type 0-1
PARAM_VALUE 0 vcpu->arch.guest_tsc_protected 0
PARAM_VALUE 0 vcpu->kvm 4096-ptr_max
PARAM_VALUE 0 vcpu->kvm->arch.apicv_update_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vcpu->kvm->arch.apicv_update_lock.first_waiter->type 0-1
PARAM_VALUE 0 vcpu->kvm->arch.tsc_write_lock.dep_map->name 0-255
PARAM_VALUE 0 vcpu->kvm->arch.tsc_write_lock.raw_lock.val.counter 0-s32max
PARAM_VALUE 0 vcpu->preempt_notifier.ops->sched_in 0,9110675458964602880
PARAM_VALUE 0 vcpu->preempt_notifier.ops->sched_out 0,435091332528357376
PARAM_VALUE 0 *vcpu->arch.cpu_caps 0-4294967295
BUF_SIZE 0 vcpu s32min-(-1),1-s32max
BUF_SIZE 0 vcpu s32min-(-1),1-s32max
CAPPED_DATA 0 vcpu 1
DATA_SOURCE 0 vcpu $0
DATA_SOURCE 1 l1_offset $1
NOSPEC 0 vcpu->dirty_ring.index
NOSPEC 0 vcpu->vcpu_id
PREEMPT_ADD
NOCHECK_CALL
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.hyperv_enabled 0[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-255
USER_DATA 0 vcpu->arch.tsc_offset 0-u64max
USER_DATA 0 vcpu->arch.virtual_tsc_khz 1-u32max
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.pre_fault_allowed 0-1
USER_DATA 0 vcpu->arch.xen.runstate2_cache.kvm->arch.vm_type 0-31
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.pre_fault_allowed 0-1
USER_DATA 0 vcpu->arch.xen.runstate_cache.kvm->arch.vm_type 0-31
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.pre_fault_allowed 0-1
USER_DATA 0 vcpu->arch.xen.vcpu_info_cache.kvm->arch.vm_type 0-31
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.pre_fault_allowed 0-1
USER_DATA 0 vcpu->arch.xen.vcpu_time_info_cache.kvm->arch.vm_type 0-31
USER_DATA 0 vcpu->dirty_ring.index 1-16383[c]
USER_DATA 0 vcpu->vcpu_id 1-16383[c]
USER_DATA 1 l1_offset 0-u64max
LOCK2 &kvm->arch.tsc_write_lock
LOCK2 flags
HALF_LOCKED2 &vcpu->mutex
HALF_LOCKED2 0 &vcpu->mutex
TYPE_LOCK (struct kvm_arch)->tsc_write_lock

arch/x86/kvm/x86.c adjust_tsc_offset_guest() -> kvm_vcpu_write_tsc_offset()

Type Parameter Key Value
PARAM_VALUE 0 vcpu 4096-ptr_max
PARAM_VALUE 0 vcpu->arch.apic->vcpu->kvm->arch.apic_map->xapic_flat_map->lapic_timer.timer_mode 0-4294967295
PARAM_VALUE 0 vcpu->arch.apic->vcpu->kvm->arch.apicv_update_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vcpu->arch.apic->vcpu->kvm->arch.apicv_update_lock.first_waiter->type 0-1
PARAM_VALUE 0 vcpu->kvm->arch.apicv_update_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vcpu->kvm->arch.apicv_update_lock.first_waiter->type 0-1
PARAM_VALUE 0 vcpu->preempt_notifier.ops->sched_in 0,9110675458964602880
PARAM_VALUE 0 vcpu->preempt_notifier.ops->sched_out 0,435091332528357376
PARAM_VALUE 0 vcpu->run->debug.arch.exception 1,3
PARAM_VALUE 0 vcpu->run->emulation_failure.flags 0-1
PARAM_VALUE 0 vcpu->run->emulation_failure.insn_size 1-255
PARAM_VALUE 0 vcpu->run->emulation_failure.ndata 6,8,10,12
PARAM_VALUE 0 vcpu->run->emulation_failure.suberror 1
PARAM_VALUE 0 vcpu->run->hypercall.ret 0-s32max,18446744071562067968-u64max
PARAM_VALUE 0 vcpu->run->internal.ndata 0,2,4-5
PARAM_VALUE 0 vcpu->run->internal.suberror 1-4
PARAM_VALUE 0 vcpu->run->memory_fault.flags 0,8
PARAM_VALUE 0 vcpu->run->memory_fault.gpa 0,4096-18446744073709547520
PARAM_VALUE 0 vcpu->run->memory_fault.size 4096
PARAM_VALUE 0 vcpu->run->mmio.is_write 0-1
PARAM_VALUE 0 vcpu->run->mmio.len 0-8
PARAM_VALUE 0 vcpu->run->system_event.ndata 0-1,16
PARAM_VALUE 0 vcpu->run->system_event.type 2-3,6-7
PARAM_VALUE 0 *vcpu->arch.apic->vcpu->kvm->arch.vioapic->irq_eoi 0-4294967295
BUF_SIZE 0 vcpu s32min-(-1),1-s32max
BUF_SIZE 0 vcpu s32min-(-1),1-s32max
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.mmio_gfn
NOSPEC 0 vcpu->dirty_ring.index
NOSPEC 0 vcpu->vcpu_id
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 0 vcpu->arch.host_debugctl 0-u64max[c]
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.mmio_gfn 0-4503599627370495[c]
USER_DATA 0 vcpu->arch.nmi_queued.counter 0
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-255
USER_DATA 0 vcpu->arch.tsc_offset 0-u64max
USER_DATA 0 vcpu->arch.virtual_tsc_khz 1-u32max
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.pre_fault_allowed 0-1
USER_DATA 0 vcpu->arch.xen.runstate2_cache.kvm->arch.vm_type 0-31
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.pre_fault_allowed 0-1
USER_DATA 0 vcpu->arch.xen.runstate_cache.kvm->arch.vm_type 0-31
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.pre_fault_allowed 0-1
USER_DATA 0 vcpu->arch.xen.vcpu_info_cache.kvm->arch.vm_type 0-31
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.pre_fault_allowed 0-1
USER_DATA 0 vcpu->arch.xen.vcpu_time_info_cache.kvm->arch.vm_type 0-31
USER_DATA 0 vcpu->dirty_ring.index 1-16383[c]
USER_DATA 0 vcpu->run->memory_fault.gpa 0,4096-18446744073709547520[c]
USER_DATA 0 vcpu->vcpu_id 1-16383[c]
USER_DATA 0 *vcpu->arch.emulate_ctxt->fetch.end 0-255
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
UNITS 1 l1_offset unit_byte
USER_PTR 0 vcpu->arch.emulate_ctxt->fetch.end
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
HALF_LOCKED2 flags
HALF_LOCKED2 0 &vcpu->kvm->srcu
HALF_LOCKED2 0 &vcpu->mutex

arch/x86/kvm/x86.c kvm_arch_vcpu_load() -> kvm_vcpu_write_tsc_offset()

Type Parameter Key Value
PARAM_VALUE 0 vcpu 4096-ptr_max
PARAM_VALUE 0 vcpu->arch.tsc_offset_adjustment 0
PARAM_VALUE 0 vcpu->kvm->arch.apicv_update_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vcpu->kvm->arch.apicv_update_lock.first_waiter->type 0-1
PARAM_VALUE 0 vcpu->kvm->arch.noncoherent_dma_count.counter 0-1
PARAM_VALUE 0 vcpu->preempt_notifier.ops->sched_in 0,9110675458964602880
PARAM_VALUE 0 vcpu->preempt_notifier.ops->sched_out 0,435091332528357376
PARAM_VALUE 0 *vcpu->arch.cpu_caps 0-4294967295
BUF_SIZE 0 vcpu s32min-(-1),1-s32max
BUF_SIZE 0 vcpu s32min-(-1),1-s32max
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
DATA_SOURCE 1 l1_offset r kvm_compute_l1_tsc_offset
NOSPEC 0 vcpu->dirty_ring.index
NOSPEC 0 vcpu->vcpu_id
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
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.hyperv_enabled 0[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-255
USER_DATA 0 vcpu->arch.tsc_offset 0-u64max
USER_DATA 0 vcpu->arch.virtual_tsc_khz 1-u32max
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 0-1[c]
USER_DATA 0 vcpu->arch.xen.runstate2_cache.kvm->arch.vm_type 0-31
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 0-1[c]
USER_DATA 0 vcpu->arch.xen.runstate_cache.kvm->arch.vm_type 0-31
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 0-1[c]
USER_DATA 0 vcpu->arch.xen.vcpu_info_cache.kvm->arch.vm_type 0-31
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 0-1[c]
USER_DATA 0 vcpu->arch.xen.vcpu_time_info_cache.kvm->arch.vm_type 0-31
USER_DATA 0 vcpu->dirty_ring.index 1-16383[c]
USER_DATA 0 vcpu->vcpu_id 1-16383[c]
HALF_LOCKED2 0 &vcpu->mutex

arch/x86/kvm/msrs.c adjust_tsc_offset_guest() -> kvm_vcpu_write_tsc_offset()

Type Parameter Key Value
PARAM_VALUE 0 vcpu 4096-ptr_max
PARAM_VALUE 0 vcpu->arch.emulate_ctxt->ops->get_cr 8265647234411626496
PARAM_VALUE 0 vcpu->kvm->arch.xen.hvm_config.msr 1-u32max
PARAM_VALUE 0 vcpu->run->hypercall.ret 0-s32max,18446744071562067968-u64max
CAPPED_DATA 0 vcpu->kvm->arch.xen.hvm_config.msr 1
DATA_SOURCE 0 vcpu $0
NOCHECK_CALL
UNITS 1 l1_offset unit_byte