Defined in 1 files as a prototype:
Defined in 1 files as a function:
Referenced in 13 files:
- arch/arm64/kvm/mmio.c, line 230
- arch/loongarch/kvm/exit.c
- arch/loongarch/kvm/intc/ipi.c, line 153
- arch/mips/kvm/emulate.c, line 1252
- arch/powerpc/kvm/book3s.c, line 1007
- arch/powerpc/kvm/book3s_64_mmu_hv.c, line 448
- arch/powerpc/kvm/powerpc.c, line 1402
- arch/riscv/kvm/vcpu_insn.c, line 613
- arch/x86/kvm/svm/svm.c, line 2003
- arch/x86/kvm/vmx/tdx.c
- arch/x86/kvm/vmx/vmx.c, line 6018
- arch/x86/kvm/x86.c
- virt/kvm/kvm_main.c, line 5918
Smatch caller information:
arch/x86/kvm/x86.c emulator_pio_in_out() -> kvm_io_bus_write()
| 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.emulate_ctxt->ops->get_cr | 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 | 1 | bus_idx | 1 |
| BUF_SIZE | 0 | vcpu | s32min-(-1),1-s32max |
| BUF_SIZE | 0 | vcpu | s32min-(-1),1-s32max |
| BUF_SIZE | 0 | vcpu->arch.sev_pio_data | s32min,(-1),1-65536 |
| BUF_SIZE | 4 | val | s32min,(-1),1-65536 |
| BUF_SIZE | 4 | val | s32min,(-1),1-65536 |
| DATA_SOURCE | 0 | vcpu | $0 |
| DATA_SOURCE | 2 | addr | $2 |
| DATA_SOURCE | 3 | len | $1 |
| DATA_SOURCE | 4 | val | $3 [m] |
| USER_DATA | 0 | vcpu->arch.cr8 | 0-14 |
| 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->arch.sev_pio_count | |
| NO_OVERFLOW_SIMPLE | 3 | len | |
| USER_PTR | 0 | vcpu->arch.emulate_ctxt->fetch.end | |
| USER_PTR | 0 | vcpu->arch.pdptrs | |
| HALF_LOCKED2 | 0 | &vcpu->kvm->srcu | |
| HALF_LOCKED2 | 0 | &vcpu->mutex |
arch/x86/kvm/x86.c vcpu_mmio_write() -> kvm_io_bus_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.apic->dev.ops->write | 4096-ptr_max |
| PARAM_VALUE | 0 | vcpu->arch.emulate_ctxt->ops->get_cr | 4096-ptr_max |
| PARAM_VALUE | 0 | vcpu->kvm | 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 | bus_idx | 0 |
| PARAM_VALUE | 3 | len | s32min-8 |
| BUF_SIZE | 0 | vcpu | (-1),1-s32max |
| BUF_SIZE | 0 | vcpu | (-1),1-s32max |
| BUF_SIZE | 4 | val | s32min,(-1),1-65536 |
| BUF_SIZE | 4 | val | s32min,(-1),1-65536 |
| CAPPED_DATA | 3 | len | 1 |
| DATA_SOURCE | 0 | vcpu | $0 |
| DATA_SOURCE | 2 | addr | $1 [m] |
| USER_DATA | 0 | *vcpu->arch.emulate_ctxt->fetch.end | 0-255 |
| UNITS | 2 | addr | unit_byte |
| UNITS | 3 | len | unit_byte |
| USER_PTR | 0 | vcpu->arch.emulate_ctxt->fetch.end | |
| USER_PTR | 4 | val |
arch/x86/kvm/svm/svm.c npf_interception() -> kvm_io_bus_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 | bus_idx | 3 |
| PARAM_VALUE | 3 | len | 0 |
| PARAM_VALUE | 4 | val | 0 |
| BUF_SIZE | 0 | vcpu | (-1),7720 |
| BUF_SIZE | 0 | vcpu | (-1),7720 |
| DATA_SOURCE | 0 | vcpu | $0 |
| USER_DATA | 0 | *vcpu->arch.emulate_ctxt->fetch.end | 0-255 |
| UNITS | 2 | addr | unit_byte |
| USER_PTR | 0 | vcpu->arch.emulate_ctxt->fetch.end |
arch/x86/kvm/vmx/tdx.c tdx_mmio_write() -> kvm_io_bus_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | vcpu | 4096-ptr_max |
| PARAM_VALUE | 0 | vcpu->kvm | 4096-ptr_max |
| PARAM_VALUE | 0 | vcpu->kvm->arch.vm_type | 5 |
| PARAM_VALUE | 1 | bus_idx | 3 |
| PARAM_VALUE | 3 | len | 0 |
| PARAM_VALUE | 4 | val | 0 |
| CAPPED_DATA | 2 | addr | 1 |
| CAPPED_DATA | 2 | addr | 1 |
| DATA_SOURCE | 0 | vcpu | $0 |
| DATA_SOURCE | 2 | addr | $1 |
| UNITS | 2 | addr | unit_byte |
arch/x86/kvm/vmx/tdx.c tdx_mmio_write() -> kvm_io_bus_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | vcpu | 4096-ptr_max |
| PARAM_VALUE | 0 | vcpu->kvm | 4096-ptr_max |
| PARAM_VALUE | 0 | vcpu->kvm->arch.vm_type | 5 |
| PARAM_VALUE | 1 | bus_idx | 0 |
| PARAM_VALUE | 3 | len | 1-2,4,8 |
| BUF_SIZE | 4 | val | 8 |
| CAPPED_DATA | 2 | addr | 1 |
| CAPPED_DATA | 2 | addr | 1 |
| DATA_SOURCE | 0 | vcpu | $0 |
| DATA_SOURCE | 2 | addr | $1 |
| DATA_SOURCE | 3 | len | $2 |
| UNITS | 2 | addr | unit_byte |
| UNITS | 3 | len | unit_byte |
arch/x86/kvm/vmx/vmx.c handle_ept_misconfig() -> kvm_io_bus_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->kvm | 4096-ptr_max |
| PARAM_VALUE | 1 | bus_idx | 3 |
| PARAM_VALUE | 3 | len | 0 |
| PARAM_VALUE | 4 | val | 0 |
| DATA_SOURCE | 0 | vcpu | $0 |
| DATA_SOURCE | 2 | addr | r vmcs_read64 |