From: Thomas Gleixner <tglx@linutronix.de>
To: "Hennerich, Michael" <Michael.Hennerich@analog.com>
Cc: mingo@elte.hu, linux-kernel@vger.kernel.org
Subject: Re: [BUG][RFC][GENERIC IRQ] linux-2.6.24 (delayed) disable IRQ feature not functional for handle_simple_irq
Date: Tue, 19 Feb 2008 11:49:08 +0100 (CET) [thread overview]
Message-ID: <alpine.LFD.1.00.0802191143050.7583@apollo.tec.linutronix.de> (raw)
In-Reply-To: <600D5CB4DFD93545BF61FF01473D11AC125CCE48@limkexm2.ad.analog.com>
On Tue, 19 Feb 2008, Hennerich, Michael wrote:
> Thomas,
>
> I have reasonable doubt that the delayed disable feature on
> linux-2.6.24 for handle_simple_irq is broken.
>
> In 2.6.22 there was something like this:
>
> if (unlikely(!action || (desc->status & IRQ_DISABLED))) {
> if (desc->chip->mask)
> desc->chip->mask(irq);
> ...
>
> However in 2.6.24 the "DISABLED" IRQ in case it happens is never going to be masked.
>
> if (unlikely(!action || (desc->status & IRQ_DISABLED)))
> goto out_unlock;
>
>
> I see a disabled IRQ being invoked in an endless loop.
Simple irq's are special, see the comment above handle_simple_irq:
Simple interrupts are either sent from a demultiplexing interrupt
handler or come from hardware, where no interrupt hardware control
is necessary.
Note: The caller is expected to handle the ack, clear, mask and
unmask issues if necessary.
Simple irqs are used for low level demultiplex handlers, where the full
control of the irqchip is in the low level handler.
See also the commit log of 971e5b35fb02c5088d49e6c024aab73582a35b71
In commit 76d2160147f43f982dfe881404cfde9fd0a9da21 lazy irq disabling
was implemented, and the simple irq handler had a masking set to it.
Remy Bohmer discovered that some devices in the ARM architecture
would trigger the mask, but never unmask it. His patch to do the
unmasking was questioned by Russell King about masking simple irqs
to begin with. Looking further, it was discovered that the problems
Remy was seeing was due to improper use of the simple handler by
devices, and he later submitted patches to fix those. But the issue
that was uncovered was that the simple handler should never mask.
This patch reverts the masking in the simple handler.
Thanks,
tglx
next prev parent reply other threads:[~2008-02-19 10:49 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-18 16:58 [BUG][RFC] [GENERIC IRQ] irq_chip_set_defaults shutdown / disable Hennerich, Michael
2008-02-18 17:49 ` Thomas Gleixner
2008-02-18 18:04 ` Hennerich, Michael
2008-02-18 20:37 ` Thomas Gleixner
2008-02-19 8:58 ` Hennerich, Michael
2008-02-19 9:12 ` Thomas Gleixner
2008-02-18 20:47 ` Thomas Gleixner
2008-02-19 10:25 ` [BUG][RFC][GENERIC IRQ] linux-2.6.24 (delayed) disable IRQ feature not functional for handle_simple_irq Hennerich, Michael
2008-02-19 10:49 ` Thomas Gleixner [this message]
2008-02-19 11:51 ` Hennerich, Michael
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=alpine.LFD.1.00.0802191143050.7583@apollo.tec.linutronix.de \
--to=tglx@linutronix.de \
--cc=Michael.Hennerich@analog.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®