aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/apic/apic.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-05-22 21:38:11 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-05-22 21:38:11 -0400
commitf08b9c2f8af0d61faa1170aeae4fbca1eff6a504 (patch)
tree367b04b7750b66c8412bd377e549aa0fb5b3df02 /arch/x86/kernel/apic/apic.c
parentd79ee93de909dfb252279b9a95978bbda9a814a9 (diff)
parent0ab711ae6ab0db7696b43c74f9ba9de4d7fc1deb (diff)
Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86/apic changes from Ingo Molnar: "Most of the changes are about helping virtualized guest kernels achieve better performance." Fix up trivial conflicts with the iommu updates to arch/x86/kernel/apic/io_apic.c * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/apic: Implement EIO micro-optimization x86/apic: Add apic->eoi_write() callback x86/apic: Use symbolic APIC_EOI_ACK x86/apic: Fix typo EIO_ACK -> EOI_ACK and document it x86/xen/apic: Add missing #include <xen/xen.h> x86/apic: Only compile local function if used with !CONFIG_GENERIC_PENDING_IRQ x86/apic: Fix UP boot crash x86: Conditionally update time when ack-ing pending irqs xen/apic: implement io apic read with hypercall Revert "xen/x86: Workaround 'x86/ioapic: Add register level checks to detect bogus io-apic entries'" xen/x86: Implement x86_apic_ops x86/apic: Replace io_apic_ops with x86_io_apic_ops.
Diffstat (limited to 'arch/x86/kernel/apic/apic.c')
-rw-r--r--arch/x86/kernel/apic/apic.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
index 3722179a49db..39a222e094af 100644
--- a/arch/x86/kernel/apic/apic.c
+++ b/arch/x86/kernel/apic/apic.c
@@ -1326,11 +1326,13 @@ void __cpuinit setup_local_APIC(void)
1326 acked); 1326 acked);
1327 break; 1327 break;
1328 } 1328 }
1329 if (cpu_has_tsc) { 1329 if (queued) {
1330 rdtscll(ntsc); 1330 if (cpu_has_tsc) {
1331 max_loops = (cpu_khz << 10) - (ntsc - tsc); 1331 rdtscll(ntsc);
1332 } else 1332 max_loops = (cpu_khz << 10) - (ntsc - tsc);
1333 max_loops--; 1333 } else
1334 max_loops--;
1335 }
1334 } while (queued && max_loops > 0); 1336 } while (queued && max_loops > 0);
1335 WARN_ON(max_loops <= 0); 1337 WARN_ON(max_loops <= 0);
1336 1338