public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
From: "Kleber S. Souza" <klebers@linux.vnet.ibm.com>
To: James Bottomley <James.Bottomley@HansenPartnership.com>
Cc: Brian King <brking@linux.vnet.ibm.com>,
	"linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>
Subject: Re: [PATCH] ipr: RESEND: fix PCI permanent error handler
Date: Mon, 04 May 2009 10:41:02 -0300	[thread overview]
Message-ID: <1241444469.8515.21.camel@zeppelin.austin.ibm.com> (raw)
In-Reply-To: <1240846712.3387.18.camel@mulgrave.int.hansenpartnership.com>

On Mon, 2009-04-27 at 15:38 +0000, James Bottomley wrote:
> On Mon, 2009-04-20 at 15:18 -0500, Brian King wrote:
> > Kleber found the problem, debugged it, and provided a fix to me.
> > I provided him with an alternate patch to fix it. I'm assuming this
> > should have been handled by me submitting with my signoff alone and
> > adding a reported-by tag for Kleber. Sorry for the confusion. Shall
> > I resend as I just described?
> 
> The original patch has the tabs replaced by spaces problem, so an
> applyable patch correctly attributed would be appreciated.
> 
> James
> 
> 

Sending the patch again, now with tabs.

Kleber



The ipr driver can hang if it encounters enough PCI errors
to trigger the permanent error handler. The driver will attempt
to initiate a "bringdown" of the adapter and fail all pending
ops back. However, this bringdown is unlike any other bringdown
of the adapter in the code as the driver. In this code path we
end up failing back ops with allow_cmds still set to 1. This results
in some commands, the HCAM commands in particular, getting immediately
re-issued to the adapter on the done call, which results in
an infinite loop in ipr_fail_all_ops. Fix this by setting allow_cmds
to zero in this path. 

Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
Signed-off-by: Kleber S. Souza <klebers@linux.vnet.ibm.com>
---
 drivers/scsi/ipr.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c
index dd689de..d640359 100644
--- a/drivers/scsi/ipr.c
+++ b/drivers/scsi/ipr.c
@@ -7003,6 +7003,7 @@ static void ipr_pci_perm_failure(struct pci_dev
*pdev)
 		ioa_cfg->sdt_state = ABORT_DUMP;
 	ioa_cfg->reset_retries = IPR_NUM_RESET_RELOAD_RETRIES;
 	ioa_cfg->in_ioa_bringdown = 1;
+	ioa_cfg->allow_cmds = 0;
 	ipr_initiate_ioa_reset(ioa_cfg, IPR_SHUTDOWN_NONE);
 	spin_unlock_irqrestore(ioa_cfg->host->host_lock, flags);
 }
-- 
1.6.0.6



-- 
Kleber S. Souza
IBM Linux Technology Center


  reply	other threads:[~2009-05-04 13:42 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-20 16:59 [PATCH] ipr: RESEND: fix PCI permanent error handler Kleber S. Souza
2009-04-20 20:13 ` James Bottomley
2009-04-20 20:18   ` Brian King
2009-04-20 20:30     ` James Bottomley
2009-04-27 15:38     ` James Bottomley
2009-05-04 13:41       ` Kleber S. Souza [this message]
2009-05-20 21:16         ` James Bottomley

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=1241444469.8515.21.camel@zeppelin.austin.ibm.com \
    --to=klebers@linux.vnet.ibm.com \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=brking@linux.vnet.ibm.com \
    --cc=linux-scsi@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