Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

arch/x86/kvm/mmu/tdp_mmu.c kvm_tdp_mmu_write_spte() -> __kvm_tdp_mmu_write_spte()

Type Parameter Key Value
DATA_SOURCE 0 sptep $0
DATA_SOURCE 1 new_spte $2
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &kvm->arch.apic_map_lock
HALF_LOCKED2 &kvm->arch.apicv_update_lock
HALF_LOCKED2 &kvm->lock
HALF_LOCKED2 &kvm->mmu_lock
HALF_LOCKED2 &kvm->slots_lock
HALF_LOCKED2 &kvm->srcu
HALF_LOCKED2 rcu_read

arch/x86/kvm/mmu/tdp_mmu.c tdp_mmu_clear_spte_bits() -> __kvm_tdp_mmu_write_spte()

Type Parameter Key Value
CAPPED_DATA 1 new_spte 1
DATA_SOURCE 0 sptep $0
NOCHECK_CALL
LOCK2 &kvm->mmu_lock
LOCK2 rcu_read
HALF_LOCKED2 &kvm->slots_lock
TYPE_LOCK (struct kvm)->mmu_lock
TYPE_LOCK (struct kvm)->slots_lock

arch/x86/kvm/mmu/tdp_mmu.c tdp_mmu_set_spte_atomic() -> __kvm_tdp_mmu_write_spte()

Type Parameter Key Value
PARAM_VALUE 0 sptep 4096-ptr_max
CAPPED_DATA 0 sptep 1
PARAM_COMPARE 0 sptep == $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &kvm->mmu_lock
HALF_LOCKED2 &kvm->srcu

arch/x86/kvm/mmu/tdp_mmu.c tdp_mmu_set_spte_atomic() -> __kvm_tdp_mmu_write_spte()

Type Parameter Key Value
PARAM_VALUE 0 sptep 4096-ptr_max
CAPPED_DATA 0 sptep 1
DATA_SOURCE 1 new_spte $2
PARAM_COMPARE 0 sptep == $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 new_spte 0-u64max[c]
LOCK2 rcu_read
HALF_LOCKED2 &kvm->mmu_lock
HALF_LOCKED2 &kvm->srcu