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 |