lkml.org 
[lkml]   [2004]   [Mar]   [17]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateWed, 17 Mar 2004 17:51:42 +0100 (CET)
From"Maciej W. Rozycki" <>
SubjectRe: [2.6.4-rc2] bogus semicolon behind if()
On Tue, 9 Mar 2004, Thomas Schlichter wrote:

> 2. To fix my problem, timer_ack must be set to 1 for my (integrated) APIC, and 
> as my CPU has a TSC, this cannot be correct for me:
> -	timer_ack = 1;
> +	if (nmi_watchdog == NMI_IO_APIC && !APIC_INTEGRATED(ver))
> +		timer_ack = 1;
> +	else
> +		timer_ack = !cpu_has_tsc;
> 
> I changed that if(...) to
> 	if (nmi_watchdog == NMI_IO_APIC || APIC_INTEGRATED(ver))
> which works fine for me here, but I am not 100% sure if this is what the 
> author of the original patch ment and if it still fixes the original 
> problem...

 You need timer_ack set to one when either:

1. you use the I/O APIC NMI watchdog and you have a discrete APIC chip
(i.e. the 82489DX),

or:

2. the timer interrupt (IRQ 0) goes through one of the APICs (whatever
way; we check three variations) and the TSC is non-functional (absent or 
disabled).

Since you have an integrated APIC and you use the TSC, you may have 
timer_ack set to zero.  That saves a few (possibly slow) I/O accesses and 
works around problems that may arise due 8259A clone (in)compatibility or 
bugs in SMM firmware.

  Maciej

-- 
+  Maciej W. Rozycki, Technical University of Gdansk, Poland   +
+--------------------------------------------------------------+
+        e-mail: macro@ds2.pg.gda.pl, PGP key available        +
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2005-03-22 13:01    [from the cache]
©2003-2008