[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Pine.LNX.4.44L0.0703141302480.7723-100000@iolanthe.rowland.org>
Date: Wed, 14 Mar 2007 13:04:22 -0400 (EDT)
From: Alan Stern <stern@...land.harvard.edu>
To: Tejun Heo <htejun@...il.com>
cc: gregkh@...e.de, Jeff Garzik <jeff@...zik.org>,
<linux-kernel@...r.kernel.org>,
<linux-pci@...ey.karlin.mff.cuni.cz>,
<michal.k.k.piotrowski@...il.com>, <linux-ide@...r.kernel.org>,
<tglx@...utronix.de>, <shemminger@...ux-foundation.org>,
<mlord@...ox.com>, <linux-pm@...ts.osdl.org>
Subject: Re: [linux-pm] [PATCH/RFC] PCI prepare/activate instead of enable
to avoid IRQ storm and rogue DMA access
On Thu, 15 Mar 2007, Tejun Heo wrote:
> Hello, all.
>
> This patch started off from the following thread.
>
> http://thread.gmane.org/gmane.linux.ide/16899
>
> The problem is that a PCI device can be in any arbitrary when it gets
> enabled and the device has to be enabled for its driver to
> initialize/reset it. The most common case this causes headache is as
> follows.
>
> Let's assume there's a device which shares its INTX IRQ line with
> another device and the other one is already initialized. During boot,
> due to BIOS's fault, bad hardware design or sheer bad luck, the device
> has got a pending IRQ. When its driver enables the device, the
> pending IRQ hits INTX. The IRQ line has been enabled by the other
> driver sharing the IRQ but IRQ handler for this device hasn't been
> registered yet. So, screaming interrupts. IRQ subsystem shuts up the
> IRQ line in an attempt to save the machine from complete lockup and
> both devices end up dead.
In several cases this problem has indeed come up and been fixed by adding
a PCI quirk routine to turn off the device's pending IRQ.
Alan Stern
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists