Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S261238AbUCQQvp (ORCPT ); Wed, 17 Mar 2004 11:51:45 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S261317AbUCQQvp (ORCPT ); Wed, 17 Mar 2004 11:51:45 -0500 Received: from jurand.ds.pg.gda.pl ([153.19.208.2]:59102 "EHLO jurand.ds.pg.gda.pl") by vger.kernel.org with ESMTP id S261238AbUCQQvn (ORCPT ); Wed, 17 Mar 2004 11:51:43 -0500 Date: Wed, 17 Mar 2004 17:51:42 +0100 (CET) From: "Maciej W. Rozycki" To: Thomas Schlichter Cc: Philippe Elie , Andrew Morton , Andreas Schwab , linux-kernel@vger.kernel.org Subject: Re: [2.6.4-rc2] bogus semicolon behind if() In-Reply-To: <200403091208.20556.thomas.schlichter@web.de> Message-ID: References: <200403090014.03282.thomas.schlichter@web.de> <20040308162947.4d0b831a.akpm@osdl.org> <20040309070127.GA2958@zaniah> <200403091208.20556.thomas.schlichter@web.de> Organization: Technical University of Gdansk MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1570 Lines: 43 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/