Subject: Re: 2.6.21-rc3-git4 ata1.00: qc timeout (cmd 0xef) (crashdump kernel)

From: Tejun Heo <[email-masked]>
Date: Tue, 13 Mar 2007 04:03:00 +0900

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?

-- 
tejun