From: Brian King <brking@linux.vnet.ibm.com>
To: Wayne Boyer <wayneb@linux.vnet.ibm.com>
Cc: James Bottomley <James.Bottomley@suse.de>,
linux-scsi <linux-scsi@vger.kernel.org>,
Kleber Sacilotto de Souza <klebers@linux.vnet.ibm.com>
Subject: Re: [PATCH 1/2] ipr: fix transition to operational for new adapters
Date: Wed, 14 Jul 2010 15:18:23 -0500 [thread overview]
Message-ID: <4C3E1B8F.9010007@linux.vnet.ibm.com> (raw)
In-Reply-To: <4C3DF8B7.6000903@linux.vnet.ibm.com>
Acked-by: Brian King <brking@linux.vnet.ibm.com>
On 07/14/2010 12:49 PM, Wayne Boyer wrote:
> The method of transitioning to operational for new adapters includes using
> initialization stages. The current stage is indicated via a register read.
> The final good stage in the sequence is "operational" but does not necessarily
> indicate that the driver can proceed. There is another bit that gets set in the
> adapter->host interrupt register when the adapter has completed enough of its
> bringup such that it can accept commands. The driver was not checking that
> bit before proceeding which led to intermittent errors and adapter resets.
>
> The fix is to check the "transition to operational" bit in the interrupt
> register after detecting that the initialization stage is "operational" and
> only proceed if both are set.
>
> Signed-off-by: Wayne Boyer <wayneb@linux.vnet.ibm.com>
> ---
> drivers/scsi/ipr.c | 15 +++++++++------
> 1 file changed, 9 insertions(+), 6 deletions(-)
>
> Index: b/drivers/scsi/ipr.c
> ===================================================================
> --- a/drivers/scsi/ipr.c 2010-07-08 17:16:09.000000000 -0700
> +++ b/drivers/scsi/ipr.c 2010-07-08 17:17:15.000000000 -0700
> @@ -7166,12 +7166,15 @@ static int ipr_reset_next_stage(struct i
> stage_time = ioa_cfg->transop_timeout;
> ipr_cmd->job_step = ipr_ioafp_identify_hrrq;
> } else if (stage == IPR_IPL_INIT_STAGE_TRANSOP) {
> - ipr_cmd->job_step = ipr_ioafp_identify_hrrq;
> - maskval = IPR_PCII_IPL_STAGE_CHANGE;
> - maskval = (maskval << 32) | IPR_PCII_IOA_TRANS_TO_OPER;
> - writeq(maskval, ioa_cfg->regs.set_interrupt_mask_reg);
> - int_reg = readl(ioa_cfg->regs.sense_interrupt_mask_reg);
> - return IPR_RC_JOB_CONTINUE;
> + int_reg = readl(ioa_cfg->regs.sense_interrupt_reg32);
> + if (int_reg & IPR_PCII_IOA_TRANS_TO_OPER) {
> + ipr_cmd->job_step = ipr_ioafp_identify_hrrq;
> + maskval = IPR_PCII_IPL_STAGE_CHANGE;
> + maskval = (maskval << 32) | IPR_PCII_IOA_TRANS_TO_OPER;
> + writeq(maskval, ioa_cfg->regs.set_interrupt_mask_reg);
> + int_reg = readl(ioa_cfg->regs.sense_interrupt_mask_reg);
> + return IPR_RC_JOB_CONTINUE;
> + }
> }
>
> ipr_cmd->timer.data = (unsigned long) ipr_cmd;
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
Brian King
Linux on Power Virtualization
IBM Linux Technology Center
prev parent reply other threads:[~2010-07-14 20:18 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20100714174038.137807350@linux.vnet.ibm.com>
2010-07-14 17:49 ` [PATCH 1/2] ipr: fix transition to operational for new adapters Wayne Boyer
2010-07-14 20:18 ` Brian King [this message]
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=4C3E1B8F.9010007@linux.vnet.ibm.com \
--to=brking@linux.vnet.ibm.com \
--cc=James.Bottomley@suse.de \
--cc=klebers@linux.vnet.ibm.com \
--cc=linux-scsi@vger.kernel.org \
--cc=wayneb@linux.vnet.ibm.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.