From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate.crashing.org (gate.crashing.org [63.228.1.57]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTP id 3E87467BCD for ; Mon, 20 Nov 2006 07:32:42 +1100 (EST) Subject: Re: [PATCH] 2.6.18-rt7: PowerPC: fix breakage in threaded fasteoi type IRQ handlers From: Benjamin Herrenschmidt To: Sergei Shtylyov In-Reply-To: <4560BDF5.400@ru.mvista.com> References: <200611192243.34850.sshtylyov@ru.mvista.com> <1163966437.5826.99.camel@localhost.localdomain> <20061119200650.GA22949@elte.hu> <1163967590.5826.104.camel@localhost.localdomain> <4560BDF5.400@ru.mvista.com> Content-Type: text/plain Date: Mon, 20 Nov 2006 07:32:56 +1100 Message-Id: <1163968376.5826.110.camel@localhost.localdomain> Mime-Version: 1.0 Cc: linuxppc-dev@ozlabs.org, Ingo Molnar , linux-kernel@vger.kernel.org, dwalker@mvista.com List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On Sun, 2006-11-19 at 23:26 +0300, Sergei Shtylyov wrote: > I must not that this whole ack() vs eoi() stuff is misleading. For example, > in 8259 driver, mask_ack() method actually sends EOI to PIC, not ACK's an IRQ > -- the actual ACK is implicit on x86 and is used to read the interrupt vector > form 8259 on PPC. So, IMO, there probably should only have been either ack() > or eoi() method in the first place. Though I'm not familiar with ARM from > which genirq stuff originated... They are different concepts. Ack clears the event on the PIC, it's tyically necessary for resetting the edge detection logic for edge interrupts and has to happen before the handler is called. On MPIC or XICS, this is implicit by reading the vector. On some more dumb controllers, this has to be done explicitely. EOI is a more "high level" thing that some "intelligent" PICs that automatically raise the priority do to restore the priority to what it was before the interrupt occured. Ben.