From: Tejun Heo <tj@kernel.org>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Jeff Garzik <jeff@garzik.org>,
IDE/ATA development list <linux-ide@vger.kernel.org>
Subject: Re: [PATCH #upstraem-fixes] ata_piix: detect and clear spurious IRQs
Date: Thu, 27 Nov 2008 03:57:52 +0900 [thread overview]
Message-ID: <492D9C30.8080208@kernel.org> (raw)
In-Reply-To: <20081126184024.3447c017@lxorguk.ukuu.org.uk>
Alan Cox wrote:
>> circumstances, during resume SRST, the drive would raise the IRQ line
>> regardless of NIEN and will stay that way for several seconds, thus
>> triggering nobody cared. Other than detecting and clearing the
>> spurious IRQ, there just isn't much driver can do to work around
>> problems like this.
>
> There is. It also means your patch isn't sufficient - if that IRQ had
> been level triggered you'd have hung the box solid.
Right, the attached patch fixed it so it must have been the controller
latching the IRQ.
> The old IDE code makes use of disable_irq/enable_irq (and really ought to
> make use of on chip private IRQ mask bits as first choice but doesn't).
>
> Sounds to me like there are two things we can do to help
>
> Make the nIEN masking via a helper that can on suitable chips also mask
> on chip.
>
> Make use of disable_irq_nosync() in the case of devices that ignore nIEN
> in the IRQ handler, setting a flag then re-enable it when the driver
> path completes the reset and the bit goes clear.
>
> We need to start using enable/disable_irq and/or local chip IRQ masking
> for PIO in some places anyway.
Agreed. I think we should use disable/enable_irq for all controller
which don't have proper IRQ masking mechanism (NIEN doesn't count) for
both reliability and so that we move PIO out of irq handler. Jeff,
this has come up quite a few times now, what do you think?
Thanks.
--
tejun
next prev parent reply other threads:[~2008-11-26 18:58 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-21 4:13 [PATCH #upstraem-fixes] ata_piix: detect and clear spurious IRQs Tejun Heo
2008-11-21 10:25 ` Alan Cox
2008-11-21 13:07 ` Tejun Heo
2008-11-25 17:07 ` Jeff Garzik
2008-11-26 2:52 ` Tejun Heo
2008-11-26 10:47 ` Alan Cox
2008-11-26 12:26 ` Sergei Shtylyov
2008-11-26 12:28 ` Sergei Shtylyov
2008-11-26 12:37 ` Sergei Shtylyov
2008-11-26 17:34 ` Jeff Garzik
2008-11-26 17:45 ` Tejun Heo
2008-11-26 18:40 ` Alan Cox
2008-11-26 18:57 ` Tejun Heo [this message]
2008-11-28 2:31 ` Tejun Heo
2008-12-04 16:33 ` Mark Lord
2008-12-04 16:35 ` Alan Cox
2008-11-21 16:59 ` Sergei Shtylyov
2008-11-21 17:05 ` Tejun Heo
2008-11-25 17:08 ` Jeff Garzik
2008-11-25 17:15 ` Alan Cox
2008-11-26 2:45 ` Tejun Heo
2008-11-26 10:33 ` Alan Cox
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=492D9C30.8080208@kernel.org \
--to=tj@kernel.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=jeff@garzik.org \
--cc=linux-ide@vger.kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).