ioapic 125 arch/x86/include/asm/io_apic.h extern int mpc_ioapic_id(int ioapic); ioapic 126 arch/x86/include/asm/io_apic.h extern unsigned int mpc_ioapic_addr(int ioapic); ioapic 168 arch/x86/include/asm/io_apic.h extern int mp_find_ioapic_pin(int ioapic, u32 gsi); ioapic 378 arch/x86/kernel/acpi/boot.c int ioapic; ioapic 397 arch/x86/kernel/acpi/boot.c ioapic = mp_find_ioapic(gsi); ioapic 398 arch/x86/kernel/acpi/boot.c mp_irq.dstapic = mpc_ioapic_id(ioapic); ioapic 399 arch/x86/kernel/acpi/boot.c mp_irq.dstirq = mp_find_ioapic_pin(ioapic, gsi); ioapic 410 arch/x86/kernel/acpi/boot.c int ioapic, pin; ioapic 413 arch/x86/kernel/acpi/boot.c ioapic = mp_find_ioapic(gsi); ioapic 414 arch/x86/kernel/acpi/boot.c if (ioapic < 0) { ioapic 416 arch/x86/kernel/acpi/boot.c return ioapic; ioapic 419 arch/x86/kernel/acpi/boot.c pin = mp_find_ioapic_pin(ioapic, gsi); ioapic 426 arch/x86/kernel/acpi/boot.c mp_irq.dstapic = mpc_ioapic_id(ioapic); ioapic 437 arch/x86/kernel/acpi/boot.c struct acpi_madt_io_apic *ioapic = NULL; ioapic 443 arch/x86/kernel/acpi/boot.c ioapic = (struct acpi_madt_io_apic *)header; ioapic 445 arch/x86/kernel/acpi/boot.c if (BAD_MADT_ENTRY(ioapic, end)) ioapic 451 arch/x86/kernel/acpi/boot.c if (ioapic->global_irq_base < nr_legacy_irqs()) ioapic 454 arch/x86/kernel/acpi/boot.c mp_register_ioapic(ioapic->id, ioapic->address, ioapic->global_irq_base, ioapic 1110 arch/x86/kernel/acpi/boot.c int ioapic, pin; ioapic 1122 arch/x86/kernel/acpi/boot.c ioapic = mp_find_ioapic(gsi); ioapic 1123 arch/x86/kernel/acpi/boot.c if (ioapic < 0) ioapic 1125 arch/x86/kernel/acpi/boot.c pin = mp_find_ioapic_pin(ioapic, gsi); ioapic 1126 arch/x86/kernel/acpi/boot.c dstapic = mpc_ioapic_id(ioapic); ioapic 140 arch/x86/kernel/apic/io_apic.c static inline int mp_ioapic_pin_count(int ioapic) ioapic 142 arch/x86/kernel/apic/io_apic.c struct mp_ioapic_gsi *gsi_cfg = mp_ioapic_gsi_routing(ioapic); ioapic 147 arch/x86/kernel/apic/io_apic.c static inline u32 mp_pin_to_gsi(int ioapic, int pin) ioapic 149 arch/x86/kernel/apic/io_apic.c return mp_ioapic_gsi_routing(ioapic)->gsi_base + pin; ioapic 162 arch/x86/kernel/apic/io_apic.c static inline int mp_init_irq_at_boot(int ioapic, int irq) ioapic 167 arch/x86/kernel/apic/io_apic.c return ioapic == 0 || mp_is_legacy_irq(irq); ioapic 170 arch/x86/kernel/apic/io_apic.c static inline struct irq_domain *mp_ioapic_irqdomain(int ioapic) ioapic 172 arch/x86/kernel/apic/io_apic.c return ioapics[ioapic].irqdomain; ioapic 959 arch/x86/kernel/apic/io_apic.c static int alloc_irq_from_domain(struct irq_domain *domain, int ioapic, u32 gsi, ioapic 964 arch/x86/kernel/apic/io_apic.c int type = ioapics[ioapic].irqdomain_cfg.type; ioapic 1002 arch/x86/kernel/apic/io_apic.c int irq, int ioapic, int pin, ioapic 1017 arch/x86/kernel/apic/io_apic.c if (__add_pin_to_irq_node(irq_data->chip_data, node, ioapic, ioapic 1034 arch/x86/kernel/apic/io_apic.c static int mp_map_pin_to_irq(u32 gsi, int idx, int ioapic, int pin, ioapic 1041 arch/x86/kernel/apic/io_apic.c struct irq_domain *domain = mp_ioapic_irqdomain(ioapic); ioapic 1059 arch/x86/kernel/apic/io_apic.c ioapic_copy_alloc_attr(&tmp, info, gsi, ioapic, pin); ioapic 1062 arch/x86/kernel/apic/io_apic.c ioapic, pin, &tmp); ioapic 1064 arch/x86/kernel/apic/io_apic.c irq = alloc_irq_from_domain(domain, ioapic, gsi, &tmp); ioapic 1077 arch/x86/kernel/apic/io_apic.c static int pin_2_irq(int idx, int ioapic, int pin, unsigned int flags) ioapic 1079 arch/x86/kernel/apic/io_apic.c u32 gsi = mp_pin_to_gsi(ioapic, pin); ioapic 1107 arch/x86/kernel/apic/io_apic.c return mp_map_pin_to_irq(gsi, idx, ioapic, pin, flags, NULL); ioapic 1112 arch/x86/kernel/apic/io_apic.c int ioapic, pin, idx; ioapic 1114 arch/x86/kernel/apic/io_apic.c ioapic = mp_find_ioapic(gsi); ioapic 1115 arch/x86/kernel/apic/io_apic.c if (ioapic < 0) ioapic 1118 arch/x86/kernel/apic/io_apic.c pin = mp_find_ioapic_pin(ioapic, gsi); ioapic 1119 arch/x86/kernel/apic/io_apic.c idx = find_irq_entry(ioapic, pin, mp_INT); ioapic 1123 arch/x86/kernel/apic/io_apic.c return mp_map_pin_to_irq(gsi, idx, ioapic, pin, flags, info); ioapic 1211 arch/x86/kernel/apic/io_apic.c unsigned int ioapic, pin; ioapic 1216 arch/x86/kernel/apic/io_apic.c for_each_ioapic_pin(ioapic, pin) { ioapic 1217 arch/x86/kernel/apic/io_apic.c idx = find_irq_entry(ioapic, pin, mp_INT); ioapic 1221 arch/x86/kernel/apic/io_apic.c mpc_ioapic_id(ioapic), pin); ioapic 1223 arch/x86/kernel/apic/io_apic.c pin_2_irq(idx, ioapic, pin, ioapic 1224 arch/x86/kernel/apic/io_apic.c ioapic ? 0 : IOAPIC_MAP_ALLOC); ioapic 2099 arch/x86/kernel/apic/io_apic.c static int mp_alloc_timer_irq(int ioapic, int pin) ioapic 2102 arch/x86/kernel/apic/io_apic.c struct irq_domain *domain = mp_ioapic_irqdomain(ioapic); ioapic 2108 arch/x86/kernel/apic/io_apic.c info.ioapic_id = mpc_ioapic_id(ioapic); ioapic 2111 arch/x86/kernel/apic/io_apic.c irq = alloc_isa_irq_from_domain(domain, 0, ioapic, pin, &info); ioapic 2297 arch/x86/kernel/apic/io_apic.c static int mp_irqdomain_create(int ioapic) ioapic 2301 arch/x86/kernel/apic/io_apic.c int hwirqs = mp_ioapic_pin_count(ioapic); ioapic 2302 arch/x86/kernel/apic/io_apic.c struct ioapic *ip = &ioapics[ioapic]; ioapic 2304 arch/x86/kernel/apic/io_apic.c struct mp_ioapic_gsi *gsi_cfg = mp_ioapic_gsi_routing(ioapic); ioapic 2313 arch/x86/kernel/apic/io_apic.c info.ioapic_id = mpc_ioapic_id(ioapic); ioapic 2324 arch/x86/kernel/apic/io_apic.c fn = irq_domain_alloc_named_id_fwnode(name, ioapic); ioapic 2330 arch/x86/kernel/apic/io_apic.c (void *)(long)ioapic); ioapic 2359 arch/x86/kernel/apic/io_apic.c int ioapic; ioapic 2367 arch/x86/kernel/apic/io_apic.c for_each_ioapic(ioapic) ioapic 2368 arch/x86/kernel/apic/io_apic.c BUG_ON(mp_irqdomain_create(ioapic)); ioapic 2422 arch/x86/kernel/apic/io_apic.c static int io_apic_get_redir_entries(int ioapic) ioapic 2428 arch/x86/kernel/apic/io_apic.c reg_01.raw = io_apic_read(ioapic, 1); ioapic 2454 arch/x86/kernel/apic/io_apic.c static int io_apic_get_unique_id(int ioapic, int apic_id) ioapic 2475 arch/x86/kernel/apic/io_apic.c reg_00.raw = io_apic_read(ioapic, 0); ioapic 2480 arch/x86/kernel/apic/io_apic.c "%d\n", ioapic, apic_id, reg_00.bits.ID); ioapic 2499 arch/x86/kernel/apic/io_apic.c "trying %d\n", ioapic, apic_id, i); ioapic 2511 arch/x86/kernel/apic/io_apic.c io_apic_write(ioapic, 0, reg_00.raw); ioapic 2512 arch/x86/kernel/apic/io_apic.c reg_00.raw = io_apic_read(ioapic, 0); ioapic 2518 arch/x86/kernel/apic/io_apic.c ioapic); ioapic 2524 arch/x86/kernel/apic/io_apic.c "IOAPIC[%d]: Assigned apic_id %d\n", ioapic, apic_id); ioapic 2585 arch/x86/kernel/apic/io_apic.c static int io_apic_get_version(int ioapic) ioapic 2591 arch/x86/kernel/apic/io_apic.c reg_01.raw = io_apic_read(ioapic, 1); ioapic 2599 arch/x86/kernel/apic/io_apic.c int ioapic, pin, idx; ioapic 2604 arch/x86/kernel/apic/io_apic.c ioapic = mp_find_ioapic(gsi); ioapic 2605 arch/x86/kernel/apic/io_apic.c if (ioapic < 0) ioapic 2608 arch/x86/kernel/apic/io_apic.c pin = mp_find_ioapic_pin(ioapic, gsi); ioapic 2612 arch/x86/kernel/apic/io_apic.c idx = find_irq_entry(ioapic, pin, mp_INT); ioapic 2742 arch/x86/kernel/apic/io_apic.c int mp_find_ioapic_pin(int ioapic, u32 gsi) ioapic 2746 arch/x86/kernel/apic/io_apic.c if (WARN_ON(ioapic < 0)) ioapic 2749 arch/x86/kernel/apic/io_apic.c gsi_cfg = mp_ioapic_gsi_routing(ioapic); ioapic 2798 arch/x86/kernel/apic/io_apic.c int idx, ioapic, entries; ioapic 2805 arch/x86/kernel/apic/io_apic.c for_each_ioapic(ioapic) ioapic 2806 arch/x86/kernel/apic/io_apic.c if (ioapics[ioapic].mp_config.apicaddr == address) { ioapic 2808 arch/x86/kernel/apic/io_apic.c address, ioapic); ioapic 2838 arch/x86/kernel/apic/io_apic.c for_each_ioapic(ioapic) { ioapic 2839 arch/x86/kernel/apic/io_apic.c gsi_cfg = mp_ioapic_gsi_routing(ioapic); ioapic 2889 arch/x86/kernel/apic/io_apic.c int ioapic, pin; ioapic 2892 arch/x86/kernel/apic/io_apic.c for_each_ioapic(ioapic) ioapic 2893 arch/x86/kernel/apic/io_apic.c if (ioapics[ioapic].gsi_config.gsi_base == gsi_base) { ioapic 2902 arch/x86/kernel/apic/io_apic.c for_each_pin(ioapic, pin) { ioapic 2903 arch/x86/kernel/apic/io_apic.c u32 gsi = mp_pin_to_gsi(ioapic, pin); ioapic 2911 arch/x86/kernel/apic/io_apic.c pin, ioapic); ioapic 2918 arch/x86/kernel/apic/io_apic.c ioapics[ioapic].nr_registers = 0; ioapic 2919 arch/x86/kernel/apic/io_apic.c ioapic_destroy_irqdomain(ioapic); ioapic 2920 arch/x86/kernel/apic/io_apic.c free_ioapic_saved_registers(ioapic); ioapic 2921 arch/x86/kernel/apic/io_apic.c if (ioapics[ioapic].iomem_res) ioapic 2922 arch/x86/kernel/apic/io_apic.c release_resource(ioapics[ioapic].iomem_res); ioapic 2923 arch/x86/kernel/apic/io_apic.c clear_fixmap(FIX_IO_APIC_BASE_0 + ioapic); ioapic 2924 arch/x86/kernel/apic/io_apic.c memset(&ioapics[ioapic], 0, sizeof(ioapics[ioapic])); ioapic 2931 arch/x86/kernel/apic/io_apic.c int ioapic; ioapic 2933 arch/x86/kernel/apic/io_apic.c for_each_ioapic(ioapic) ioapic 2934 arch/x86/kernel/apic/io_apic.c if (ioapics[ioapic].gsi_config.gsi_base == gsi_base) ioapic 2977 arch/x86/kernel/apic/io_apic.c int ret, ioapic, pin; ioapic 2990 arch/x86/kernel/apic/io_apic.c ioapic = mp_irqdomain_ioapic_idx(domain); ioapic 3011 arch/x86/kernel/apic/io_apic.c mp_irqdomain_get_attr(mp_pin_to_gsi(ioapic, pin), data, info); ioapic 3014 arch/x86/kernel/apic/io_apic.c add_pin_to_irq_node(data, ioapic_alloc_attr_node(info), ioapic, pin); ioapic 3026 arch/x86/kernel/apic/io_apic.c ioapic, mpc_ioapic_id(ioapic), pin, cfg->vector, ioapic 349 arch/x86/kernel/mpparse.c struct mpc_ioapic ioapic; ioapic 376 arch/x86/kernel/mpparse.c ioapic.type = MP_IOAPIC; ioapic 377 arch/x86/kernel/mpparse.c ioapic.apicid = 2; ioapic 378 arch/x86/kernel/mpparse.c ioapic.apicver = mpc_default_type > 4 ? 0x10 : 0x01; ioapic 379 arch/x86/kernel/mpparse.c ioapic.flags = MPC_APIC_USABLE; ioapic 380 arch/x86/kernel/mpparse.c ioapic.apicaddr = IO_APIC_DEFAULT_PHYS_BASE; ioapic 381 arch/x86/kernel/mpparse.c MP_ioapic_info(&ioapic); ioapic 52 arch/x86/kvm/ioapic.c static unsigned long ioapic_read_indirect(struct kvm_ioapic *ioapic, ioapic 58 arch/x86/kvm/ioapic.c switch (ioapic->ioregsel) { ioapic 66 arch/x86/kvm/ioapic.c result = ((ioapic->id & 0xf) << 24); ioapic 71 arch/x86/kvm/ioapic.c u32 redir_index = (ioapic->ioregsel - 0x10) >> 1; ioapic 78 arch/x86/kvm/ioapic.c redir_content = ioapic->redirtbl[index].bits; ioapic 81 arch/x86/kvm/ioapic.c result = (ioapic->ioregsel & 0x1) ? ioapic 91 arch/x86/kvm/ioapic.c static void rtc_irq_eoi_tracking_reset(struct kvm_ioapic *ioapic) ioapic 93 arch/x86/kvm/ioapic.c ioapic->rtc_status.pending_eoi = 0; ioapic 94 arch/x86/kvm/ioapic.c bitmap_zero(ioapic->rtc_status.dest_map.map, KVM_MAX_VCPU_ID); ioapic 97 arch/x86/kvm/ioapic.c static void kvm_rtc_eoi_tracking_restore_all(struct kvm_ioapic *ioapic); ioapic 99 arch/x86/kvm/ioapic.c static void rtc_status_pending_eoi_check_valid(struct kvm_ioapic *ioapic) ioapic 101 arch/x86/kvm/ioapic.c if (WARN_ON(ioapic->rtc_status.pending_eoi < 0)) ioapic 102 arch/x86/kvm/ioapic.c kvm_rtc_eoi_tracking_restore_all(ioapic); ioapic 108 arch/x86/kvm/ioapic.c struct kvm_ioapic *ioapic = vcpu->kvm->arch.vioapic; ioapic 109 arch/x86/kvm/ioapic.c struct dest_map *dest_map = &ioapic->rtc_status.dest_map; ioapic 112 arch/x86/kvm/ioapic.c e = &ioapic->redirtbl[RTC_GSI]; ioapic 126 arch/x86/kvm/ioapic.c ioapic->rtc_status.pending_eoi++; ioapic 129 arch/x86/kvm/ioapic.c ioapic->rtc_status.pending_eoi--; ioapic 130 arch/x86/kvm/ioapic.c rtc_status_pending_eoi_check_valid(ioapic); ioapic 136 arch/x86/kvm/ioapic.c struct kvm_ioapic *ioapic = vcpu->kvm->arch.vioapic; ioapic 138 arch/x86/kvm/ioapic.c spin_lock(&ioapic->lock); ioapic 140 arch/x86/kvm/ioapic.c spin_unlock(&ioapic->lock); ioapic 143 arch/x86/kvm/ioapic.c static void kvm_rtc_eoi_tracking_restore_all(struct kvm_ioapic *ioapic) ioapic 151 arch/x86/kvm/ioapic.c rtc_irq_eoi_tracking_reset(ioapic); ioapic 152 arch/x86/kvm/ioapic.c kvm_for_each_vcpu(i, vcpu, ioapic->kvm) ioapic 156 arch/x86/kvm/ioapic.c static void rtc_irq_eoi(struct kvm_ioapic *ioapic, struct kvm_vcpu *vcpu) ioapic 159 arch/x86/kvm/ioapic.c ioapic->rtc_status.dest_map.map)) { ioapic 160 arch/x86/kvm/ioapic.c --ioapic->rtc_status.pending_eoi; ioapic 161 arch/x86/kvm/ioapic.c rtc_status_pending_eoi_check_valid(ioapic); ioapic 165 arch/x86/kvm/ioapic.c static bool rtc_irq_check_coalesced(struct kvm_ioapic *ioapic) ioapic 167 arch/x86/kvm/ioapic.c if (ioapic->rtc_status.pending_eoi > 0) ioapic 173 arch/x86/kvm/ioapic.c static int ioapic_set_irq(struct kvm_ioapic *ioapic, unsigned int irq, ioapic 181 arch/x86/kvm/ioapic.c entry = ioapic->redirtbl[irq]; ioapic 185 arch/x86/kvm/ioapic.c ioapic->irr &= ~mask; ioapic 202 arch/x86/kvm/ioapic.c rtc_irq_check_coalesced(ioapic)) { ioapic 207 arch/x86/kvm/ioapic.c old_irr = ioapic->irr; ioapic 208 arch/x86/kvm/ioapic.c ioapic->irr |= mask; ioapic 210 arch/x86/kvm/ioapic.c ioapic->irr_delivered &= ~mask; ioapic 211 arch/x86/kvm/ioapic.c if (old_irr == ioapic->irr) { ioapic 217 arch/x86/kvm/ioapic.c ret = ioapic_service(ioapic, irq, line_status); ioapic 224 arch/x86/kvm/ioapic.c static void kvm_ioapic_inject_all(struct kvm_ioapic *ioapic, unsigned long irr) ioapic 228 arch/x86/kvm/ioapic.c rtc_irq_eoi_tracking_reset(ioapic); ioapic 230 arch/x86/kvm/ioapic.c ioapic_set_irq(ioapic, idx, 1, true); ioapic 232 arch/x86/kvm/ioapic.c kvm_rtc_eoi_tracking_restore_all(ioapic); ioapic 238 arch/x86/kvm/ioapic.c struct kvm_ioapic *ioapic = vcpu->kvm->arch.vioapic; ioapic 239 arch/x86/kvm/ioapic.c struct dest_map *dest_map = &ioapic->rtc_status.dest_map; ioapic 243 arch/x86/kvm/ioapic.c spin_lock(&ioapic->lock); ioapic 251 arch/x86/kvm/ioapic.c e = &ioapic->redirtbl[index]; ioapic 253 arch/x86/kvm/ioapic.c kvm_irq_has_notifier(ioapic->kvm, KVM_IRQCHIP_IOAPIC, index) || ioapic 262 arch/x86/kvm/ioapic.c spin_unlock(&ioapic->lock); ioapic 272 arch/x86/kvm/ioapic.c static void ioapic_write_indirect(struct kvm_ioapic *ioapic, u32 val) ioapic 279 arch/x86/kvm/ioapic.c switch (ioapic->ioregsel) { ioapic 285 arch/x86/kvm/ioapic.c ioapic->id = (val >> 24) & 0xf; ioapic 292 arch/x86/kvm/ioapic.c index = (ioapic->ioregsel - 0x10) >> 1; ioapic 297 arch/x86/kvm/ioapic.c e = &ioapic->redirtbl[index]; ioapic 302 arch/x86/kvm/ioapic.c if (ioapic->ioregsel & 1) { ioapic 323 arch/x86/kvm/ioapic.c kvm_fire_mask_notifiers(ioapic->kvm, KVM_IRQCHIP_IOAPIC, index, mask_after); ioapic 325 arch/x86/kvm/ioapic.c && ioapic->irr & (1 << index)) ioapic 326 arch/x86/kvm/ioapic.c ioapic_service(ioapic, index, false); ioapic 327 arch/x86/kvm/ioapic.c kvm_make_scan_ioapic_request(ioapic->kvm); ioapic 332 arch/x86/kvm/ioapic.c static int ioapic_service(struct kvm_ioapic *ioapic, int irq, bool line_status) ioapic 334 arch/x86/kvm/ioapic.c union kvm_ioapic_redirect_entry *entry = &ioapic->redirtbl[irq]; ioapic 353 arch/x86/kvm/ioapic.c ioapic->irr_delivered |= 1 << irq; ioapic 362 arch/x86/kvm/ioapic.c BUG_ON(ioapic->rtc_status.pending_eoi != 0); ioapic 363 arch/x86/kvm/ioapic.c ret = kvm_irq_delivery_to_apic(ioapic->kvm, NULL, &irqe, ioapic 364 arch/x86/kvm/ioapic.c &ioapic->rtc_status.dest_map); ioapic 365 arch/x86/kvm/ioapic.c ioapic->rtc_status.pending_eoi = (ret < 0 ? 0 : ret); ioapic 367 arch/x86/kvm/ioapic.c ret = kvm_irq_delivery_to_apic(ioapic->kvm, NULL, &irqe, NULL); ioapic 375 arch/x86/kvm/ioapic.c int kvm_ioapic_set_irq(struct kvm_ioapic *ioapic, int irq, int irq_source_id, ioapic 382 arch/x86/kvm/ioapic.c spin_lock(&ioapic->lock); ioapic 383 arch/x86/kvm/ioapic.c irq_level = __kvm_irq_line_state(&ioapic->irq_states[irq], ioapic 385 arch/x86/kvm/ioapic.c ret = ioapic_set_irq(ioapic, irq, irq_level, line_status); ioapic 387 arch/x86/kvm/ioapic.c spin_unlock(&ioapic->lock); ioapic 392 arch/x86/kvm/ioapic.c void kvm_ioapic_clear_all(struct kvm_ioapic *ioapic, int irq_source_id) ioapic 396 arch/x86/kvm/ioapic.c spin_lock(&ioapic->lock); ioapic 398 arch/x86/kvm/ioapic.c __clear_bit(irq_source_id, &ioapic->irq_states[i]); ioapic 399 arch/x86/kvm/ioapic.c spin_unlock(&ioapic->lock); ioapic 405 arch/x86/kvm/ioapic.c struct kvm_ioapic *ioapic = container_of(work, struct kvm_ioapic, ioapic 407 arch/x86/kvm/ioapic.c spin_lock(&ioapic->lock); ioapic 409 arch/x86/kvm/ioapic.c union kvm_ioapic_redirect_entry *ent = &ioapic->redirtbl[i]; ioapic 414 arch/x86/kvm/ioapic.c if (ioapic->irr & (1 << i) && !ent->fields.remote_irr) ioapic 415 arch/x86/kvm/ioapic.c ioapic_service(ioapic, i, false); ioapic 417 arch/x86/kvm/ioapic.c spin_unlock(&ioapic->lock); ioapic 423 arch/x86/kvm/ioapic.c struct kvm_ioapic *ioapic, int vector, int trigger_mode) ioapic 425 arch/x86/kvm/ioapic.c struct dest_map *dest_map = &ioapic->rtc_status.dest_map; ioapic 432 arch/x86/kvm/ioapic.c rtc_irq_eoi(ioapic, vcpu); ioapic 435 arch/x86/kvm/ioapic.c union kvm_ioapic_redirect_entry *ent = &ioapic->redirtbl[i]; ioapic 448 arch/x86/kvm/ioapic.c spin_unlock(&ioapic->lock); ioapic 449 arch/x86/kvm/ioapic.c kvm_notify_acked_irq(ioapic->kvm, KVM_IRQCHIP_IOAPIC, i); ioapic 450 arch/x86/kvm/ioapic.c spin_lock(&ioapic->lock); ioapic 458 arch/x86/kvm/ioapic.c if (!ent->fields.mask && (ioapic->irr & (1 << i))) { ioapic 459 arch/x86/kvm/ioapic.c ++ioapic->irq_eoi[i]; ioapic 460 arch/x86/kvm/ioapic.c if (ioapic->irq_eoi[i] == IOAPIC_SUCCESSIVE_IRQ_MAX_COUNT) { ioapic 469 arch/x86/kvm/ioapic.c schedule_delayed_work(&ioapic->eoi_inject, HZ / 100); ioapic 470 arch/x86/kvm/ioapic.c ioapic->irq_eoi[i] = 0; ioapic 473 arch/x86/kvm/ioapic.c ioapic_service(ioapic, i, false); ioapic 476 arch/x86/kvm/ioapic.c ioapic->irq_eoi[i] = 0; ioapic 483 arch/x86/kvm/ioapic.c struct kvm_ioapic *ioapic = vcpu->kvm->arch.vioapic; ioapic 485 arch/x86/kvm/ioapic.c spin_lock(&ioapic->lock); ioapic 486 arch/x86/kvm/ioapic.c __kvm_ioapic_update_eoi(vcpu, ioapic, vector, trigger_mode); ioapic 487 arch/x86/kvm/ioapic.c spin_unlock(&ioapic->lock); ioapic 495 arch/x86/kvm/ioapic.c static inline int ioapic_in_range(struct kvm_ioapic *ioapic, gpa_t addr) ioapic 497 arch/x86/kvm/ioapic.c return ((addr >= ioapic->base_address && ioapic 498 arch/x86/kvm/ioapic.c (addr < ioapic->base_address + IOAPIC_MEM_LENGTH))); ioapic 504 arch/x86/kvm/ioapic.c struct kvm_ioapic *ioapic = to_ioapic(this); ioapic 506 arch/x86/kvm/ioapic.c if (!ioapic_in_range(ioapic, addr)) ioapic 512 arch/x86/kvm/ioapic.c spin_lock(&ioapic->lock); ioapic 515 arch/x86/kvm/ioapic.c result = ioapic->ioregsel; ioapic 519 arch/x86/kvm/ioapic.c result = ioapic_read_indirect(ioapic, addr, len); ioapic 526 arch/x86/kvm/ioapic.c spin_unlock(&ioapic->lock); ioapic 546 arch/x86/kvm/ioapic.c struct kvm_ioapic *ioapic = to_ioapic(this); ioapic 548 arch/x86/kvm/ioapic.c if (!ioapic_in_range(ioapic, addr)) ioapic 570 arch/x86/kvm/ioapic.c spin_lock(&ioapic->lock); ioapic 573 arch/x86/kvm/ioapic.c ioapic->ioregsel = data & 0xFF; /* 8-bit register */ ioapic 577 arch/x86/kvm/ioapic.c ioapic_write_indirect(ioapic, data); ioapic 583 arch/x86/kvm/ioapic.c spin_unlock(&ioapic->lock); ioapic 587 arch/x86/kvm/ioapic.c static void kvm_ioapic_reset(struct kvm_ioapic *ioapic) ioapic 591 arch/x86/kvm/ioapic.c cancel_delayed_work_sync(&ioapic->eoi_inject); ioapic 593 arch/x86/kvm/ioapic.c ioapic->redirtbl[i].fields.mask = 1; ioapic 594 arch/x86/kvm/ioapic.c ioapic->base_address = IOAPIC_DEFAULT_BASE_ADDRESS; ioapic 595 arch/x86/kvm/ioapic.c ioapic->ioregsel = 0; ioapic 596 arch/x86/kvm/ioapic.c ioapic->irr = 0; ioapic 597 arch/x86/kvm/ioapic.c ioapic->irr_delivered = 0; ioapic 598 arch/x86/kvm/ioapic.c ioapic->id = 0; ioapic 599 arch/x86/kvm/ioapic.c memset(ioapic->irq_eoi, 0x00, sizeof(ioapic->irq_eoi)); ioapic 600 arch/x86/kvm/ioapic.c rtc_irq_eoi_tracking_reset(ioapic); ioapic 610 arch/x86/kvm/ioapic.c struct kvm_ioapic *ioapic; ioapic 613 arch/x86/kvm/ioapic.c ioapic = kzalloc(sizeof(struct kvm_ioapic), GFP_KERNEL_ACCOUNT); ioapic 614 arch/x86/kvm/ioapic.c if (!ioapic) ioapic 616 arch/x86/kvm/ioapic.c spin_lock_init(&ioapic->lock); ioapic 617 arch/x86/kvm/ioapic.c INIT_DELAYED_WORK(&ioapic->eoi_inject, kvm_ioapic_eoi_inject_work); ioapic 618 arch/x86/kvm/ioapic.c kvm->arch.vioapic = ioapic; ioapic 619 arch/x86/kvm/ioapic.c kvm_ioapic_reset(ioapic); ioapic 620 arch/x86/kvm/ioapic.c kvm_iodevice_init(&ioapic->dev, &ioapic_mmio_ops); ioapic 621 arch/x86/kvm/ioapic.c ioapic->kvm = kvm; ioapic 623 arch/x86/kvm/ioapic.c ret = kvm_io_bus_register_dev(kvm, KVM_MMIO_BUS, ioapic->base_address, ioapic 624 arch/x86/kvm/ioapic.c IOAPIC_MEM_LENGTH, &ioapic->dev); ioapic 628 arch/x86/kvm/ioapic.c kfree(ioapic); ioapic 636 arch/x86/kvm/ioapic.c struct kvm_ioapic *ioapic = kvm->arch.vioapic; ioapic 638 arch/x86/kvm/ioapic.c if (!ioapic) ioapic 641 arch/x86/kvm/ioapic.c cancel_delayed_work_sync(&ioapic->eoi_inject); ioapic 643 arch/x86/kvm/ioapic.c kvm_io_bus_unregister_dev(kvm, KVM_MMIO_BUS, &ioapic->dev); ioapic 646 arch/x86/kvm/ioapic.c kfree(ioapic); ioapic 651 arch/x86/kvm/ioapic.c struct kvm_ioapic *ioapic = kvm->arch.vioapic; ioapic 653 arch/x86/kvm/ioapic.c spin_lock(&ioapic->lock); ioapic 654 arch/x86/kvm/ioapic.c memcpy(state, ioapic, sizeof(struct kvm_ioapic_state)); ioapic 655 arch/x86/kvm/ioapic.c state->irr &= ~ioapic->irr_delivered; ioapic 656 arch/x86/kvm/ioapic.c spin_unlock(&ioapic->lock); ioapic 661 arch/x86/kvm/ioapic.c struct kvm_ioapic *ioapic = kvm->arch.vioapic; ioapic 663 arch/x86/kvm/ioapic.c spin_lock(&ioapic->lock); ioapic 664 arch/x86/kvm/ioapic.c memcpy(ioapic, state, sizeof(struct kvm_ioapic_state)); ioapic 665 arch/x86/kvm/ioapic.c ioapic->irr = 0; ioapic 666 arch/x86/kvm/ioapic.c ioapic->irr_delivered = 0; ioapic 668 arch/x86/kvm/ioapic.c kvm_ioapic_inject_all(ioapic, state->irr); ioapic 669 arch/x86/kvm/ioapic.c spin_unlock(&ioapic->lock); ioapic 126 arch/x86/kvm/ioapic.h int kvm_ioapic_set_irq(struct kvm_ioapic *ioapic, int irq, int irq_source_id, ioapic 128 arch/x86/kvm/ioapic.h void kvm_ioapic_clear_all(struct kvm_ioapic *ioapic, int irq_source_id); ioapic 42 arch/x86/kvm/irq_comm.c struct kvm_ioapic *ioapic = kvm->arch.vioapic; ioapic 43 arch/x86/kvm/irq_comm.c return kvm_ioapic_set_irq(ioapic, e->irqchip.pin, irq_source_id, level, ioapic 4611 arch/x86/kvm/x86.c kvm_get_ioapic(kvm, &chip->chip.ioapic); ioapic 4640 arch/x86/kvm/x86.c kvm_set_ioapic(kvm, &chip->chip.ioapic); ioapic 101 drivers/acpi/ioapic.c struct acpi_pci_ioapic *ioapic; ioapic 110 drivers/acpi/ioapic.c list_for_each_entry(ioapic, &ioapic_list, list) ioapic 111 drivers/acpi/ioapic.c if (ioapic->handle == handle) { ioapic 122 drivers/acpi/ioapic.c ioapic = kzalloc(sizeof(*ioapic), GFP_KERNEL); ioapic 123 drivers/acpi/ioapic.c if (!ioapic) { ioapic 127 drivers/acpi/ioapic.c ioapic->root_handle = (acpi_handle)context; ioapic 128 drivers/acpi/ioapic.c ioapic->handle = handle; ioapic 129 drivers/acpi/ioapic.c ioapic->gsi_base = (u32)gsi_base; ioapic 130 drivers/acpi/ioapic.c INIT_LIST_HEAD(&ioapic->list); ioapic 144 drivers/acpi/ioapic.c ioapic->pdev = dev; ioapic 150 drivers/acpi/ioapic.c crs_res = &ioapic->res; ioapic 172 drivers/acpi/ioapic.c list_add(&ioapic->list, &ioapic_list); ioapic 187 drivers/acpi/ioapic.c if (ioapic->res.flags && ioapic->res.parent) ioapic 188 drivers/acpi/ioapic.c release_resource(&ioapic->res); ioapic 194 drivers/acpi/ioapic.c kfree(ioapic); ioapic 214 drivers/acpi/ioapic.c struct acpi_pci_ioapic *ioapic, *tmp; ioapic 217 drivers/acpi/ioapic.c list_for_each_entry_safe(ioapic, tmp, &ioapic_list, list) { ioapic 218 drivers/acpi/ioapic.c if (root->device->handle != ioapic->root_handle) ioapic 220 drivers/acpi/ioapic.c if (ioapic->pdev) { ioapic 221 drivers/acpi/ioapic.c pci_release_region(ioapic->pdev, 0); ioapic 222 drivers/acpi/ioapic.c pci_disable_device(ioapic->pdev); ioapic 223 drivers/acpi/ioapic.c pci_dev_put(ioapic->pdev); ioapic 232 drivers/acpi/ioapic.c struct acpi_pci_ioapic *ioapic, *tmp; ioapic 235 drivers/acpi/ioapic.c list_for_each_entry_safe(ioapic, tmp, &ioapic_list, list) { ioapic 236 drivers/acpi/ioapic.c if (root->device->handle != ioapic->root_handle) ioapic 238 drivers/acpi/ioapic.c if (acpi_unregister_ioapic(ioapic->handle, ioapic->gsi_base)) ioapic 240 drivers/acpi/ioapic.c if (ioapic->res.flags && ioapic->res.parent) ioapic 241 drivers/acpi/ioapic.c release_resource(&ioapic->res); ioapic 242 drivers/acpi/ioapic.c list_del(&ioapic->list); ioapic 243 drivers/acpi/ioapic.c kfree(ioapic); ioapic 271 drivers/acpi/processor_core.c struct acpi_madt_io_apic *ioapic = (struct acpi_madt_io_apic *)entry; ioapic 273 drivers/acpi/processor_core.c if (ioapic->global_irq_base != gsi_base) ioapic 276 drivers/acpi/processor_core.c *phys_addr = ioapic->address; ioapic 277 drivers/acpi/processor_core.c *ioapic_id = ioapic->id; ioapic 138 include/uapi/linux/kvm.h struct kvm_ioapic_state ioapic; ioapic 138 tools/include/uapi/linux/kvm.h struct kvm_ioapic_state ioapic;