| /linux/arch/x86/kvm/ |
| H A D | lapic.c | 81 static int kvm_lapic_msr_read(struct kvm_lapic *apic, u32 reg, u64 *data); 82 static int kvm_lapic_msr_write(struct kvm_lapic *apic, u32 reg, u64 data); 84 static inline void kvm_lapic_set_reg(struct kvm_lapic *apic, int reg_off, u32 val) in kvm_lapic_set_reg() argument 86 apic_set_reg(apic->regs, reg_off, val); in kvm_lapic_set_reg() 89 static __always_inline u64 kvm_lapic_get_reg64(struct kvm_lapic *apic, int reg) in kvm_lapic_get_reg64() argument 91 return apic_get_reg64(apic->regs, reg); in kvm_lapic_get_reg64() 94 static __always_inline void kvm_lapic_set_reg64(struct kvm_lapic *apic, in kvm_lapic_set_reg64() argument 97 apic_set_reg64(apic->regs, reg, val); in kvm_lapic_set_reg64() 102 struct kvm_lapic *apic = vcpu->arch.apic; in kvm_apic_pending_eoi() local 104 return apic_test_vector(vector, apic->regs + APIC_ISR) || in kvm_apic_pending_eoi() [all …]
|
| H A D | lapic.h | 114 int kvm_apic_local_deliver(struct kvm_lapic *apic, int lvt_type); 132 void kvm_apic_send_ipi(struct kvm_lapic *apic, u32 icr_low, u32 icr_high); 149 int kvm_x2apic_icr_write_fast(struct kvm_lapic *apic, u64 data); 159 u64 kvm_lapic_readable_reg_mask(struct kvm_lapic *apic); 161 static inline void kvm_lapic_set_irr(int vec, struct kvm_lapic *apic) in kvm_lapic_set_irr() argument 163 apic_set_vector(vec, apic->regs + APIC_IRR); in kvm_lapic_set_irr() 168 apic->irr_pending = true; in kvm_lapic_set_irr() 171 static inline u32 kvm_lapic_get_reg(struct kvm_lapic *apic, int reg_off) in kvm_lapic_get_reg() argument 173 return apic_get_reg(apic->regs, reg_off); in kvm_lapic_get_reg() 181 return vcpu->arch.apic; in lapic_in_kernel() [all …]
|
| /linux/arch/x86/kernel/apic/ |
| H A D | init.c | 15 DEFINE_STATIC_CALL_NULL(apic_call_##__cb, *apic->__cb) 41 apic->__cb = __x86_apic_override.__cb 62 static_call_update(apic_call_##__cb, *apic->__cb) 86 apic->native_eoi = apic->eoi; in apic_setup_apic_calls() 91 void __init apic_install_driver(struct apic *driver) in apic_install_driver() 93 if (apic == driver) in apic_install_driver() 96 apic = driver; in apic_install_driver() 98 if (IS_ENABLED(CONFIG_X86_X2APIC) && apic->x2apic_set_max_apicid) in apic_install_driver() 99 apic->max_apic_id = x2apic_max_apicid; in apic_install_driver() 102 if (!apic->native_eoi) in apic_install_driver() [all …]
|
| H A D | io_apic.c | 90 int apic, pin; member 264 static inline void io_apic_eoi(unsigned int apic, unsigned int vector) in io_apic_eoi() argument 266 struct io_apic __iomem *io_apic = io_apic_base(apic); in io_apic_eoi() 271 unsigned int native_io_apic_read(unsigned int apic, unsigned int reg) in native_io_apic_read() argument 273 struct io_apic __iomem *io_apic = io_apic_base(apic); in native_io_apic_read() 279 static void io_apic_write(unsigned int apic, unsigned int reg, in io_apic_write() argument 282 struct io_apic __iomem *io_apic = io_apic_base(apic); in io_apic_write() 288 static struct IO_APIC_route_entry __ioapic_read_entry(int apic, int pin) in __ioapic_read_entry() argument 292 entry.w1 = io_apic_read(apic, 0x10 + 2 * pin); in __ioapic_read_entry() 293 entry.w2 = io_apic_read(apic, 0x11 + 2 * pin); in __ioapic_read_entry() [all …]
|
| H A D | probe_32.c | 37 static struct apic apic_default __ro_after_init = { 72 struct apic *apic __ro_after_init = &apic_default; 73 EXPORT_SYMBOL_GPL(apic); 78 struct apic **drv; in parse_apic() 99 struct apic **drv; in x86_32_probe_apic()
|
| H A D | apic_flat_64.c | 32 static struct apic apic_physflat __ro_after_init = { 67 struct apic *apic __ro_after_init = &apic_physflat; 68 EXPORT_SYMBOL_GPL(apic);
|
| H A D | apic_numachip.c | 25 static const struct apic apic_numachip1; 26 static const struct apic apic_numachip2; 137 return apic == &apic_numachip1; in numachip1_probe() 142 return apic == &apic_numachip2; in numachip2_probe() 206 static const struct apic apic_numachip1 __refconst = { 240 static const struct apic apic_numachip2 __refconst = {
|
| H A D | x2apic_cluster.c | 111 u32 apicid = apic->cpu_present_to_apicid(cpu_i); in prefill_clustermask() 147 u32 apicid = apic->cpu_present_to_apicid(cpu_i); in alloc_clustermask() 178 u32 phys_apicid = apic->cpu_present_to_apicid(cpu); in x2apic_prepare_cpu() 227 static struct apic apic_x2apic_cluster __ro_after_init = {
|
| H A D | probe_64.c | 19 struct apic **drv; in x86_64_probe_apic() 33 struct apic **drv; in default_acpi_madt_oem_check()
|
| H A D | apic.c | 1177 if (apic->teardown) in disable_local_APIC() 1178 apic->teardown(); in disable_local_APIC() 1399 if (apic->disable_esr) { in lapic_setup_esr() 1513 if (apic->setup) in setup_local_APIC() 1514 apic->setup(); in setup_local_APIC() 1526 if (lapic_is_integrated() && apic->disable_esr) { in setup_local_APIC() 1540 if (apic->init_apic_ldr) in setup_local_APIC() 1541 apic->init_apic_ldr(); in setup_local_APIC() 2292 msg->arch_addr_lo.dest_mode_logical = apic->dest_mode_logical; in __irq_msi_compose_msg()
|
| H A D | ipi.c | 103 if (WARN_ON_ONCE(!apic->nmi_to_offline_cpu)) in apic_send_nmi_to_offline_cpu() 107 apic->send_IPI(cpu, NMI_VECTOR); in apic_send_nmi_to_offline_cpu()
|
| H A D | Makefile | 10 obj-$(CONFIG_X86_LOCAL_APIC) += apic.o apic_common.o apic_noop.o ipi.o vector.o init.o
|
| H A D | apic_noop.c | 52 struct apic apic_noop __ro_after_init = {
|
| /linux/arch/x86/include/asm/ |
| H A D | apic.h | 270 struct apic { struct 345 extern struct apic *apic; 353 static const struct apic *__apicdrivers_##sym __used \ 354 __aligned(sizeof(struct apic *)) \ 357 extern struct apic *__apicdrivers[], *__apicdrivers_end[]; 370 void __init apic_install_driver(struct apic *driver); 374 apic->_callback = _fn; \ 380 DECLARE_STATIC_CALL(apic_call_##__cb, *apic->__cb) 465 return apic->safe_wait_icr_idle ? apic->safe_wait_icr_idle() : 0; in safe_apic_wait_icr_idle() 470 return apic_id <= apic->max_apic_id; in apic_id_valid() [all …]
|
| H A D | io_apic.h | 162 extern unsigned int native_io_apic_read(unsigned int apic, unsigned int reg); 165 static inline unsigned int io_apic_read(unsigned int apic, unsigned int reg) in io_apic_read() argument 167 return x86_apic_ops.io_apic_read(apic, reg); in io_apic_read()
|
| /linux/arch/x86/xen/ |
| H A D | apic.c | 14 static unsigned int xen_io_apic_read(unsigned apic, unsigned reg) in xen_io_apic_read() argument 19 apic_op.apic_physbase = mpc_ioapic_addr(apic); in xen_io_apic_read() 29 return apic << 24; in xen_io_apic_read() 113 static struct apic xen_pv_apic __ro_after_init = {
|
| H A D | Makefile | 26 obj-$(CONFIG_XEN_PV) += apic.o
|
| /linux/arch/x86/kvm/svm/ |
| H A D | avic.c | 169 if (x2avic_enabled && (!vcpu || apic_x2apic_mode(vcpu->arch.apic))) in __avic_get_max_physical_id() 205 if (x2avic_enabled && apic_x2apic_mode(svm->vcpu.arch.apic)) { in avic_activate_vmcb() 362 return __sme_set(__pa(svm->vcpu.arch.apic->regs)); in avic_get_backing_page_address() 397 vcpu->arch.apic->apicv_active = false; in avic_init_backing_page() 404 if (WARN_ON_ONCE(!vcpu->arch.apic->regs)) in avic_init_backing_page() 461 vcpu->arch.apic->irr_pending = true; in avic_kick_vcpu() 616 struct kvm_lapic *apic = vcpu->arch.apic; in avic_incomplete_ipi_interception() local 638 kvm_apic_send_ipi(apic, icrl, icrh); in avic_incomplete_ipi_interception() 646 avic_kick_target_vcpus(vcpu->kvm, apic, icrl, icrh, index); in avic_incomplete_ipi_interception() 699 flat = kvm_lapic_get_reg(vcpu->arch.apic, APIC_DFR) == APIC_DFR_FLAT; in avic_ldr_write() [all …]
|
| /linux/drivers/acpi/ |
| H A D | processor_core.c | 51 struct acpi_madt_local_x2apic *apic = in map_x2apic_id() local 54 if (!(apic->lapic_flags & ACPI_MADT_ENABLED)) in map_x2apic_id() 57 if (apic->uid == acpi_id && (device_declaration || acpi_id < 255)) { in map_x2apic_id() 58 *apic_id = apic->local_apic_id; in map_x2apic_id()
|
| /linux/arch/x86/kernel/ |
| H A D | smpboot.c | 1005 if (apic->wakeup_secondary_cpu_64) in do_boot_cpu() 1051 if (apic->wakeup_secondary_cpu_64) in do_boot_cpu() 1052 ret = apic->wakeup_secondary_cpu_64(apicid, start_ip, cpu); in do_boot_cpu() 1053 else if (apic->wakeup_secondary_cpu) in do_boot_cpu() 1054 ret = apic->wakeup_secondary_cpu(apicid, start_ip, cpu); in do_boot_cpu() 1066 u32 apicid = apic->cpu_present_to_apicid(cpu); in native_kick_ap()
|
| /linux/arch/x86/hyperv/ |
| H A D | hv_apic.c | 35 static struct apic orig_apic; 309 orig_apic = *apic; in hv_apic_init()
|
| H A D | hv_spinlock.c | 72 if (!hv_pvspin || !apic || in hv_init_spinlocks()
|
| /linux/arch/x86/kvm/vmx/ |
| H A D | x86_ops.h | 51 void vmx_deliver_interrupt(struct kvm_lapic *apic, int delivery_mode, 141 void tdx_deliver_interrupt(struct kvm_lapic *apic, int delivery_mode,
|
| H A D | main.c | 301 static void vt_deliver_interrupt(struct kvm_lapic *apic, int delivery_mode, in vt_deliver_interrupt() argument 304 if (is_td_vcpu(apic->vcpu)) { in vt_deliver_interrupt() 305 tdx_deliver_interrupt(apic, delivery_mode, trig_mode, in vt_deliver_interrupt() 310 vmx_deliver_interrupt(apic, delivery_mode, trig_mode, vector); in vt_deliver_interrupt()
|
| /linux/drivers/iommu/intel/ |
| H A D | irq_remapping.c | 207 static struct intel_iommu *map_ioapic_to_iommu(int apic) in map_ioapic_to_iommu() argument 212 if (ir_ioapic[i].id == apic && ir_ioapic[i].iommu) in map_ioapic_to_iommu() 297 static int set_ioapic_sid(struct irte *irte, int apic) in set_ioapic_sid() argument 306 if (ir_ioapic[i].iommu && ir_ioapic[i].id == apic) { in set_ioapic_sid() 313 pr_warn("Failed to set source-id of IOAPIC (%d)\n", apic); in set_ioapic_sid() 1090 irte->dst_mode = apic->dest_mode_logical; in prepare_irte()
|