[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20070312123029.6ad619b0@freekitty>
Date: Mon, 12 Mar 2007 12:30:29 -0700
From: Stephen Hemminger <shemminger@...ux-foundation.org>
To: Tejun Heo <htejun@...il.com>
Cc: tglx@...utronix.de,
Michal Piotrowski <michal.k.k.piotrowski@...il.com>,
Jeff Garzik <jeff@...zik.org>, linux-ide@...r.kernel.org,
Ingo Molnar <mingo@...e.hu>,
Bartlomiej Zolnierkiewicz <bzolnier@...il.com>,
netdev@...r.kernel.org, Alan Cox <alan@...rguk.ukuu.org.uk>
Subject: Re: 2.6.21-rc3-git4 ata1.00: qc timeout (cmd 0xef) (crashdump
kernel)
On Tue, 13 Mar 2007 04:03:00 +0900
Tejun Heo <htejun@...il.com> wrote:
> Stephen Hemminger wrote:
> >> 1. the controller has IRQ stuck high (infrequent but possible)
> >> 2. the IRQ is already requested by another device
> >> 3. the IRQ gets disabled due to screaming interrupts at the moment
> >> ata_piix does pci_enable_device().
> >>
> >> I think we can be much more resilient to screaming interrupts if we
> >> enable device with IRQ disabled and enable it after the device is
> >> initialized to some level, possibly when requesting IRQ.
> >
> > The first thing the skge driver does is do a chip reset, and that should
> > cause IRQ to be disabled and cleared. The driver has no chance to
> > fix it if the BIOS left the IRQ screaming...
>
> What if we do something like...
>
> pci_intx(pdev, 0);
> pci_enable_device(pdev);
> /* initialize */
> request_irq(blah blah...);
> pci_intx(pdev, 1);
>
> Would this work for skge?
>
Okay for testing, but any change like this should be done in the base
PCI layer, not one off in a particular driver.
--
Stephen Hemminger <shemminger@...ux-foundation.org>
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists