Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

[PATCH] x86_64: Add option to disable timer check

This works around the too fast timer seen on some ATI boards.

I don't feel confident enough about it yet to enable it by default, but give
users the option.

Patch and debugging from Christopher Allen Wing <wingc@engin.umich.edu>, with
minor tweaks (renamed the option and documented it)

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by

Andi Kleen and committed by
Linus Torvalds
14d98cad 607a1685

+13 -1
+3
Documentation/x86_64/boot-options.txt
··· 25 25 26 26 noapictimer Don't set up the APIC timer 27 27 28 + no_timer_check Don't check the IO-APIC timer. This can work around 29 + problems with incorrect timer initialization on some boards. 30 + 28 31 Early Console 29 32 30 33 syntax: earlyprintk=vga
+10 -1
arch/x86_64/kernel/io_apic.c
··· 42 42 43 43 int sis_apic_bug; /* not actually supported, dummy for compile */ 44 44 45 + static int no_timer_check; 46 + 45 47 static DEFINE_SPINLOCK(ioapic_lock); 46 48 47 49 /* ··· 1603 1601 * Ok, does IRQ0 through the IOAPIC work? 1604 1602 */ 1605 1603 unmask_IO_APIC_irq(0); 1606 - if (timer_irq_works()) { 1604 + if (!no_timer_check && timer_irq_works()) { 1607 1605 nmi_watchdog_default(); 1608 1606 if (nmi_watchdog == NMI_IO_APIC) { 1609 1607 disable_8259A_irq(0); ··· 1672 1670 apic_printk(APIC_VERBOSE," failed :(.\n"); 1673 1671 panic("IO-APIC + timer doesn't work! Try using the 'noapic' kernel parameter\n"); 1674 1672 } 1673 + 1674 + static int __init notimercheck(char *s) 1675 + { 1676 + no_timer_check = 1; 1677 + return 1; 1678 + } 1679 + __setup("no_timer_check", notimercheck); 1675 1680 1676 1681 /* 1677 1682 *