Defined in 1 files as a function:
Referenced in 4 files:
- arch/x86/kvm/msrs.c
- arch/x86/kvm/svm/svm.c
- arch/x86/kvm/vmx/nested.c, line 5731
- arch/x86/kvm/vmx/vmx.c
Smatch caller information:
arch/x86/kvm/vmx/nested.c handle_vmread() -> kvm_register_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | vcpu | 4096-ptr_max |
| PARAM_VALUE | 0 | vcpu->arch.regs_avail | 4096-ptr_max |
| PARAM_VALUE | 1 | reg | 0-15 |
| DATA_SOURCE | 0 | vcpu | $0 |
| NOCHECK_CALL |
arch/x86/kvm/svm/svm.c cr_interception() -> kvm_register_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | vcpu | 4096-ptr_max |
| PARAM_VALUE | 0 | vcpu->arch.emulate_ctxt->ops->get_cr | 4096-ptr_max |
| PARAM_VALUE | 0 | vcpu->run->hypercall.ret | 0-s32max,18446744071562067968-u64max |
| PARAM_VALUE | 0 | *vcpu->arch.emulate_ctxt->dst.valptr | 0-255 |
| PARAM_VALUE | 0 | *vcpu->arch.emulate_ctxt->fetch.data | 0-255 |
| PARAM_VALUE | 0 | *vcpu->arch.emulate_ctxt->src.valptr | 0-255 |
| PARAM_VALUE | 0 | *vcpu->arch.emulate_ctxt->src2.valptr | 0-255 |
| PARAM_VALUE | 1 | reg | 0-15 |
| BUF_SIZE | 0 | vcpu | (-1),7720 |
| BUF_SIZE | 0 | vcpu | (-1),7720 |
| DATA_SOURCE | 0 | vcpu | $0 |
| NOCHECK_CALL | |||
| USER_DATA | 0 | *vcpu->arch.emulate_ctxt->fetch.end | 0-255 |
| USER_DATA | 2 | val | 0-15[c] |
| UNITS | 2 | val | unit_byte |
| USER_PTR | 0 | vcpu->arch.emulate_ctxt->fetch.end |
arch/x86/kvm/svm/svm.c dr_interception() -> kvm_register_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | vcpu | 4096-ptr_max |
| PARAM_VALUE | 0 | vcpu->arch.emulate_ctxt->ops->get_cr | 4096-ptr_max |
| PARAM_VALUE | 0 | vcpu->guest_debug | 1-u64max |
| PARAM_VALUE | 0 | vcpu->run->hypercall.ret | 0-s32max,18446744071562067968-u64max |
| PARAM_VALUE | 0 | *vcpu->arch.emulate_ctxt->dst.valptr | 0-255 |
| PARAM_VALUE | 0 | *vcpu->arch.emulate_ctxt->fetch.data | 0-255 |
| PARAM_VALUE | 0 | *vcpu->arch.emulate_ctxt->src.valptr | 0-255 |
| PARAM_VALUE | 0 | *vcpu->arch.emulate_ctxt->src2.valptr | 0-255 |
| PARAM_VALUE | 1 | reg | 0-15 |
| BUF_SIZE | 0 | vcpu | (-1),7720 |
| BUF_SIZE | 0 | vcpu | (-1),7720 |
| DATA_SOURCE | 0 | vcpu | $0 |
| NOCHECK_CALL | |||
| USER_DATA | 0 | *vcpu->arch.emulate_ctxt->fetch.end | 0-255 |
| USER_PTR | 0 | vcpu->arch.emulate_ctxt->fetch.end |
arch/x86/kvm/msrs.c __kvm_emulate_rdmsr() -> kvm_register_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | vcpu | 4096-ptr_max |
| PARAM_VALUE | 0 | vcpu->arch.cui_rdmsr_imm_reg | 0-15 |
| PARAM_VALUE | 0 | vcpu->arch.emulate_ctxt->ops->get_cr | 8265647234411626496 |
| PARAM_VALUE | 0 | vcpu->arch.nested_run_pending | 0 |
| PARAM_VALUE | 0 | vcpu->arch.regs_avail | 4096-ptr_max |
| PARAM_VALUE | 0 | vcpu->kvm | 4096-ptr_max |
| PARAM_VALUE | 0 | vcpu->kvm->srcu.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | vcpu->run->hypercall.ret | 0-s32max,18446744071562067968-u64max |
| PARAM_VALUE | 1 | reg | 0-15 |
| DATA_SOURCE | 0 | vcpu | $0 |
| DATA_SOURCE | 1 | reg | $2 |
| NOCHECK_CALL |
arch/x86/kvm/msrs.c complete_fast_rdmsr_imm() -> kvm_register_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | vcpu | 4096-ptr_max |
| PARAM_VALUE | 0 | vcpu->____srcu_idx | 0-1 |
| PARAM_VALUE | 0 | vcpu->arch.apic->lapic_timer.timer.base->index | 0-7 |
| PARAM_VALUE | 0 | vcpu->arch.apic->lapic_timer.timer.is_queued | 1 |
| PARAM_VALUE | 0 | vcpu->arch.apic->lapic_timer.timer.node.expires | 0-s64max |
| PARAM_VALUE | 0 | vcpu->arch.apic->lapic_timer.timer_mode | 0,131072-393216 |
| PARAM_VALUE | 0 | vcpu->arch.apic->pending_events | 1 |
| PARAM_VALUE | 0 | vcpu->arch.apic->vcpu->arch.pv.pv_unhalted | 1 |
| 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.apic->vcpu->ready | 1 |
| PARAM_VALUE | 0 | vcpu->arch.complete_userspace_io | 0 |
| PARAM_VALUE | 0 | vcpu->arch.exception_from_userspace | 0 |
| PARAM_VALUE | 0 | vcpu->arch.guest_fpu.fpstate | 4096-ptr_max |
| PARAM_VALUE | 0 | vcpu->arch.guest_fpu.fpstate->in_use | 1 |
| PARAM_VALUE | 0 | vcpu->arch.tsc_catchup | 1 |
| PARAM_VALUE | 0 | vcpu->arch.tsc_offset_adjustment | 0 |
| PARAM_VALUE | 0 | vcpu->cpu | 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.kvmclock_update_rs.lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | vcpu->kvm->arch.noncoherent_dma_count.counter | 0-1 |
| PARAM_VALUE | 0 | vcpu->kvm->online_vcpus.counter | (-2147483647)-s32max |
| PARAM_VALUE | 0 | vcpu->kvm->srcu.srcu_ctrp | 4096-ptr_max |
| PARAM_VALUE | 0 | vcpu->mutex.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | vcpu->mutex.first_waiter->list.prev->next | 5159360019465732096 |
| PARAM_VALUE | 0 | vcpu->mutex.first_waiter->list.prev->prev | 5159360019465732096 |
| PARAM_VALUE | 0 | vcpu->mutex.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 0 | vcpu->mutex.wait_lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | vcpu->preempt_notifier.link->pprev | 4096-ptr_max |
| PARAM_VALUE | 0 | vcpu->preempt_notifier.link.pprev | 4096-ptr_max |
| PARAM_VALUE | 0 | vcpu->run | 4096-ptr_max |
| PARAM_VALUE | 0 | vcpu->run->flags | 0 |
| PARAM_VALUE | 0 | vcpu->run->msr.error | 0 |
| PARAM_VALUE | 0 | vcpu->vcpu_idx | s32min-2147483646 |
| BUF_SIZE | 0 | vcpu | s32min-(-2),1-s32max |
| BUF_SIZE | 0 | vcpu | s32min-(-2),1-s32max |
| CAPPED_DATA | 0 | vcpu | 1 |
| CAPPED_DATA | 0 | vcpu->kvm->mm | 1 |
| CAPPED_DATA | 0 | vcpu->kvm->srcu.srcu_ctrp | 1 |
| CAPPED_DATA | 0 | vcpu->vcpu_idx | 1 |
| DATA_SOURCE | 0 | vcpu | $0 |
| NOCHECK_CALL | |||
| USER_DATA | 0 | vcpu->arch.cr8 | 0-14 |
| USER_PTR | 0 | vcpu->arch.pdptrs | |
| LOCK2 | 0 | &vcpu->kvm->srcu | |
| LOCK2 | 0 | &vcpu->mutex | |
| TYPE_LOCK | (struct kvm)->srcu | ||
| TYPE_LOCK | (struct kvm_vcpu)->mutex |
arch/x86/kvm/vmx/vmx.c handle_cr() -> kvm_register_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | vcpu | 4096-ptr_max |
| PARAM_VALUE | 0 | vcpu->arch.nested_run_pending | 0 |
| PARAM_VALUE | 0 | vcpu->arch.regs_avail | 4096-ptr_max |
| PARAM_VALUE | 0 | vcpu->kvm | 4096-ptr_max |
| PARAM_VALUE | 1 | reg | 0-15 |
| DATA_SOURCE | 0 | vcpu | $0 |
| PARAM_COMPARE | 2 | val | == $0->arch.cr3 |
| PARAM_COMPARE | 2 | val | == $0->arch.cr3 |
| NOCHECK_CALL | |||
| UNITS | 2 | val | unit_byte |
arch/x86/kvm/vmx/vmx.c handle_cr() -> kvm_register_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | vcpu | 4096-ptr_max |
| PARAM_VALUE | 0 | vcpu->arch.apic | 0,4096-ptr_max |
| PARAM_VALUE | 0 | vcpu->arch.nested_run_pending | 0 |
| PARAM_VALUE | 0 | vcpu->arch.regs_avail | 4096-ptr_max |
| PARAM_VALUE | 0 | vcpu->kvm | 4096-ptr_max |
| PARAM_VALUE | 1 | reg | 0-15 |
| DATA_SOURCE | 0 | vcpu | $0 |
| NOCHECK_CALL | |||
| UNITS | 2 | val | unit_byte |
arch/x86/kvm/vmx/vmx.c handle_dr() -> kvm_register_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | vcpu | 4096-ptr_max |
| PARAM_VALUE | 0 | vcpu->arch.nested_run_pending | 0 |
| PARAM_VALUE | 0 | vcpu->arch.regs_avail | 4096-ptr_max |
| PARAM_VALUE | 0 | vcpu->guest_debug | 1-u64max |
| PARAM_VALUE | 0 | vcpu->kvm | 4096-ptr_max |
| PARAM_VALUE | 1 | reg | 0-15 |
| DATA_SOURCE | 0 | vcpu | $0 |
| NOCHECK_CALL |