netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tejun Heo <htejun@gmail.com>
To: Stephen Hemminger <shemminger@linux-foundation.org>
Cc: tglx@linutronix.de,
	Michal Piotrowski <michal.k.k.piotrowski@gmail.com>,
	Jeff Garzik <jeff@garzik.org>,
	linux-ide@vger.kernel.org, Ingo Molnar <mingo@elte.hu>,
	Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>,
	netdev@vger.kernel.org, Alan Cox <alan@lxorguk.ukuu.org.uk>
Subject: Re: 2.6.21-rc3-git4 ata1.00: qc timeout (cmd 0xef) (crashdump kernel)
Date: Tue, 13 Mar 2007 04:40:10 +0900	[thread overview]
Message-ID: <45F5AC9A.9030601@gmail.com> (raw)
In-Reply-To: <20070312123029.6ad619b0@freekitty>

[-- Attachment #1: Type: text/plain, Size: 1359 bytes --]

Stephen Hemminger wrote:
> On Tue, 13 Mar 2007 04:03:00 +0900
> Tejun Heo <htejun@gmail.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.

Yeap, it was a proof-of-concept pseudo code.  I attached a patch to do
above in skge.  Please point out if it is broken (e.g. intx needs to be
enabled earlier).

Michal, can you apply the attached patch and see whether it fixes the
problem.

Thanks.

-- 
tejun

[-- Attachment #2: patch --]
[-- Type: text/plain, Size: 633 bytes --]

diff --git a/drivers/net/skge.c b/drivers/net/skge.c
index eea75a4..2c990f2 100644
--- a/drivers/net/skge.c
+++ b/drivers/net/skge.c
@@ -3585,6 +3585,7 @@ static int __devinit skge_probe(struct pci_dev *pdev,
 	struct skge_hw *hw;
 	int err, using_dac = 0;
 
+	pci_intx(pdev, 0);
 	err = pci_enable_device(pdev);
 	if (err) {
 		dev_err(&pdev->dev, "cannot enable PCI device\n");
@@ -3669,6 +3670,7 @@ static int __devinit skge_probe(struct pci_dev *pdev,
 		       dev->name, pdev->irq);
 		goto err_out_unregister;
 	}
+	pci_intx(pdev, 1);
 	skge_show_addr(dev);
 
 	if (hw->ports > 1 && (dev1 = skge_devinit(hw, 1, using_dac))) {

  reply	other threads:[~2007-03-12 19:40 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <6bffcb0e0703090857r14eda34bj92f3fd1d0008edb8@mail.gmail.com>
     [not found] ` <45F51218.9030907@gmail.com>
2007-03-12 16:31   ` 2.6.21-rc3-git4 ata1.00: qc timeout (cmd 0xef) (crashdump kernel) Michal Piotrowski
2007-03-12 16:37     ` Tejun Heo
2007-03-12 16:47       ` Thomas Gleixner
2007-03-12 16:47         ` Tejun Heo
2007-03-12 17:36           ` Michal Piotrowski
2007-03-12 16:46     ` Thomas Gleixner
2007-03-12 16:56       ` Tejun Heo
2007-03-12 18:50         ` Stephen Hemminger
2007-03-12 19:03           ` Tejun Heo
2007-03-12 19:30             ` Stephen Hemminger
2007-03-12 19:40               ` Tejun Heo [this message]
2007-03-13 18:26                 ` Michal Piotrowski

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=45F5AC9A.9030601@gmail.com \
    --to=htejun@gmail.com \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=bzolnier@gmail.com \
    --cc=jeff@garzik.org \
    --cc=linux-ide@vger.kernel.org \
    --cc=michal.k.k.piotrowski@gmail.com \
    --cc=mingo@elte.hu \
    --cc=netdev@vger.kernel.org \
    --cc=shemminger@linux-foundation.org \
    --cc=tglx@linutronix.de \
    /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).