From: jack_wang <jack_wang@usish.com>
To: Dan Williams <dan.j.williams@intel.com>,
linux-scsi <linux-scsi@vger.kernel.org>
Cc: linux-ide <linux-ide@vger.kernel.org>,
Jacek Danecki <jacek.danecki@intel.com>,
Luben Tuikov <ltuikov@yahoo.com>,
Xiangliang Yu <yuxiangl@marvell.com>
Subject: Re: [libsas PATCH v10 6/9] libsas: use ->lldd_I_T_nexus_reset for ->eh_bus_reset_handler
Date: Sun, 11 Mar 2012 13:37:10 +0800 [thread overview]
Message-ID: <201203111336235783450@usish.com> (raw)
In-Reply-To: 20120311043927.27797.43676.stgit@dwillia2-linux.jf.intel.com
Looks OK to me.
Thanks.
Acked-by: Jack Wang <jack_wang@usish.com>
--------------
jack_wang
>sas_eh_bus_reset_handler() amounts to sas_phy_reset() without
>notification of the reset to the lldd. If this is triggered from
>eh-cmnd recovery there may be sas_tasks for the lldd to terminate, so
>->lldd_I_T_nexus_reset is warranted.
>
>Cc: Xiangliang Yu <yuxiangl@marvell.com>
>Cc: Luben Tuikov <ltuikov@yahoo.com>
>Cc: Jack Wang <jack_wang@usish.com>
>Reviewed-by: Jacek Danecki <jacek.danecki@intel.com>
>[jacek: modify pm8001_I_T_nexus_reset to return -ENODEV]
>Signed-off-by: Dan Williams <dan.j.williams@intel.com>
>---
> drivers/scsi/libsas/sas_scsi_host.c | 19 ++++++++-----------
> drivers/scsi/pm8001/pm8001_sas.c | 3 ++-
> 2 files changed, 10 insertions(+), 12 deletions(-)
>
>diff --git a/drivers/scsi/libsas/sas_scsi_host.c b/drivers/scsi/libsas/sas_scsi_host.c
>index dec992b..a5c4ce4 100644
>--- a/drivers/scsi/libsas/sas_scsi_host.c
>+++ b/drivers/scsi/libsas/sas_scsi_host.c
>@@ -576,25 +576,22 @@ int sas_eh_device_reset_handler(struct scsi_cmnd *cmd)
> return FAILED;
> }
>
>-/* Attempt to send a phy (bus) reset */
> int sas_eh_bus_reset_handler(struct scsi_cmnd *cmd)
> {
>- struct domain_device *dev = cmd_to_domain_dev(cmd);
>- struct sas_phy *phy = sas_get_local_phy(dev);
>- struct Scsi_Host *host = cmd->device->host;
> int res;
>+ struct Scsi_Host *host = cmd->device->host;
>+ struct domain_device *dev = cmd_to_domain_dev(cmd);
>+ struct sas_internal *i = to_sas_internal(host->transportt);
>
> if (current != host->ehandler)
> return sas_queue_reset(dev, SAS_DEV_RESET, 0, 0);
>
>- res = sas_phy_reset(phy, 1);
>- if (res)
>- SAS_DPRINTK("Bus reset of %s failed 0x%x\n",
>- kobject_name(&phy->dev.kobj),
>- res);
>- sas_put_local_phy(phy);
>+ if (!i->dft->lldd_I_T_nexus_reset)
>+ return FAILED;
>
>- if (res == TMF_RESP_FUNC_SUCC || res == TMF_RESP_FUNC_COMPLETE)
>+ res = i->dft->lldd_I_T_nexus_reset(dev);
>+ if (res == TMF_RESP_FUNC_SUCC || res == TMF_RESP_FUNC_COMPLETE ||
>+ res == -ENODEV)
> return SUCCESS;
>
> return FAILED;
>diff --git a/drivers/scsi/pm8001/pm8001_sas.c b/drivers/scsi/pm8001/pm8001_sas.c
>index b111018..3a03b40 100644
>--- a/drivers/scsi/pm8001/pm8001_sas.c
>+++ b/drivers/scsi/pm8001/pm8001_sas.c
>@@ -868,8 +868,9 @@ int pm8001_I_T_nexus_reset(struct domain_device *dev)
> struct pm8001_device *pm8001_dev;
> struct pm8001_hba_info *pm8001_ha;
> struct sas_phy *phy;
>+
> if (!dev || !dev->lldd_dev)
>- return -1;
>+ return -ENODEV;
>
> pm8001_dev = dev->lldd_dev;
> pm8001_ha = pm8001_find_ha_by_dev(dev);
>
>--
>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
>
>__________ Information from ESET NOD32 Antivirus, version of virus signature database 5659 (20101129) __________
>
>The message was checked by ESET NOD32 Antivirus.
>
>http://www.eset.com
>
>
>
next prev parent reply other threads:[~2012-03-11 5:37 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-11 4:38 [libsas PATCH v10 0/9] libsas error handling + discovery v10 Dan Williams
2012-03-11 4:39 ` [libsas PATCH v10 1/9] libsas: introduce sas_work to fix sas_drain_work vs sas_queue_work Dan Williams
2012-03-11 4:39 ` [libsas PATCH v10 2/9] libsas: cleanup spurious calls to scsi_schedule_eh Dan Williams
2012-03-16 15:25 ` Dan Williams
2012-03-11 4:39 ` [libsas PATCH v10 3/9] libata, libsas: introduce sched_eh and end_eh port ops Dan Williams
2012-04-11 2:13 ` Dan Williams
2012-04-11 11:39 ` Jacek Danecki
2012-04-11 18:04 ` Dan Williams
2012-03-11 4:39 ` [libsas PATCH v10 4/9] libsas: enforce eh strategy handlers only in eh context Dan Williams
2012-03-11 4:39 ` [libsas PATCH v10 5/9] libsas: add sas_eh_abort_handler Dan Williams
2012-03-11 4:39 ` [libsas PATCH v10 6/9] libsas: use ->lldd_I_T_nexus_reset for ->eh_bus_reset_handler Dan Williams
2012-03-11 5:37 ` jack_wang [this message]
2012-03-11 4:39 ` [libsas PATCH v10 7/9] libsas: trim sas_task of slow path infrastructure Dan Williams
2012-03-11 4:39 ` [libsas PATCH v10 8/9] libsas: fix sas_find_bcast_phy() in the presence of 'vacant' phys Dan Williams
2012-03-11 4:39 ` [libsas PATCH v10 9/9] libsas: sas_rediscover_dev did not look at the SMP exec status Dan Williams
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=201203111336235783450@usish.com \
--to=jack_wang@usish.com \
--cc=dan.j.williams@intel.com \
--cc=jacek.danecki@intel.com \
--cc=linux-ide@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=ltuikov@yahoo.com \
--cc=yuxiangl@marvell.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.