Searched refs:pi_desc (Results 1 – 5 of 5) sorted by relevance
/Linux-v5.15/arch/x86/kvm/vmx/ |
D | posted_intr.h | 9 struct pi_desc { struct 31 static inline bool pi_test_and_set_on(struct pi_desc *pi_desc) in pi_test_and_set_on() argument 34 (unsigned long *)&pi_desc->control); in pi_test_and_set_on() 37 static inline bool pi_test_and_clear_on(struct pi_desc *pi_desc) in pi_test_and_clear_on() argument 40 (unsigned long *)&pi_desc->control); in pi_test_and_clear_on() 43 static inline int pi_test_and_set_pir(int vector, struct pi_desc *pi_desc) in pi_test_and_set_pir() argument 45 return test_and_set_bit(vector, (unsigned long *)pi_desc->pir); in pi_test_and_set_pir() 48 static inline bool pi_is_pir_empty(struct pi_desc *pi_desc) in pi_is_pir_empty() argument 50 return bitmap_empty((unsigned long *)pi_desc->pir, NR_VECTORS); in pi_is_pir_empty() 53 static inline void pi_set_sn(struct pi_desc *pi_desc) in pi_set_sn() argument [all …]
|
D | posted_intr.c | 19 static inline struct pi_desc *vcpu_to_pi_desc(struct kvm_vcpu *vcpu) in vcpu_to_pi_desc() 21 return &(to_vmx(vcpu)->pi_desc); in vcpu_to_pi_desc() 26 struct pi_desc *pi_desc = vcpu_to_pi_desc(vcpu); in vmx_vcpu_pi_load() local 27 struct pi_desc old, new; in vmx_vcpu_pi_load() 36 if (!pi_test_sn(pi_desc) && vcpu->cpu == cpu) in vmx_vcpu_pi_load() 46 if (pi_desc->nv == POSTED_INTR_WAKEUP_VECTOR || vcpu->cpu == cpu) { in vmx_vcpu_pi_load() 47 pi_clear_sn(pi_desc); in vmx_vcpu_pi_load() 53 old.control = new.control = pi_desc->control; in vmx_vcpu_pi_load() 63 } while (cmpxchg64(&pi_desc->control, old.control, in vmx_vcpu_pi_load() 76 if (!pi_is_pir_empty(pi_desc)) in vmx_vcpu_pi_load() [all …]
|
D | vmx.h | 193 struct pi_desc *pi_desc; member 299 struct pi_desc pi_desc; member
|
D | vmx.c | 4008 if (pi_test_and_set_pir(vector, &vmx->pi_desc)) in vmx_deliver_posted_interrupt() 4012 if (pi_test_and_set_on(&vmx->pi_desc)) in vmx_deliver_posted_interrupt() 4362 vmcs_write64(POSTED_INTR_DESC_ADDR, __pa((&vmx->pi_desc))); in init_vmcs() 6296 if (pi_test_on(&vmx->pi_desc)) { in vmx_sync_pir_to_irr() 6297 pi_clear_on(&vmx->pi_desc); in vmx_sync_pir_to_irr() 6304 kvm_apic_update_irr(vcpu, vmx->pi_desc.pir, &max_irr); in vmx_sync_pir_to_irr() 6337 pi_clear_on(&vmx->pi_desc); in vmx_apicv_post_state_restore() 6338 memset(vmx->pi_desc.pir, 0, sizeof(vmx->pi_desc.pir)); in vmx_apicv_post_state_restore() 6913 vmx->pi_desc.nv = POSTED_INTR_VECTOR; in vmx_create_vcpu() 6914 vmx->pi_desc.sn = 1; in vmx_create_vcpu()
|
D | nested.c | 313 vmx->nested.pi_desc = NULL; in free_nested() 3227 vmx->nested.pi_desc = in nested_get_vmcs12_pages() 3228 (struct pi_desc *)(((void *)map->hva) + in nested_get_vmcs12_pages() 3239 vmx->nested.pi_desc = NULL; in nested_get_vmcs12_pages() 3755 if (!vmx->nested.pi_desc) in vmx_complete_nested_posted_interrupt() 3760 if (!pi_test_and_clear_on(vmx->nested.pi_desc)) in vmx_complete_nested_posted_interrupt() 3763 max_irr = find_last_bit((unsigned long *)vmx->nested.pi_desc->pir, 256); in vmx_complete_nested_posted_interrupt() 3769 __kvm_apic_update_irr(vmx->nested.pi_desc->pir, in vmx_complete_nested_posted_interrupt() 4599 vmx->nested.pi_desc = NULL; in nested_vmx_vmexit()
|