Mercurial > illumos > illumos-gate
changeset 11167:d98b4f6cde53
6903241 device state recovery on phy may be dropped if invoked too soon again
author | Srikanth, Ramana <Ramana.Srikanth@Sun.COM> |
---|---|
date | Mon, 23 Nov 2009 18:29:31 -0500 |
parents | bd18fd1ac16d |
children | cc3c23bc7a90 |
files | usr/src/uts/common/io/scsi/adapters/pmcs/pmcs_ds.c |
diffstat | 1 files changed, 8 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/uts/common/io/scsi/adapters/pmcs/pmcs_ds.c Mon Nov 23 10:32:32 2009 -0800 +++ b/usr/src/uts/common/io/scsi/adapters/pmcs/pmcs_ds.c Mon Nov 23 18:29:31 2009 -0500 @@ -215,6 +215,7 @@ void pmcs_dev_state_recovery(pmcs_hw_t *pwp, pmcs_phy_t *phyp) { + boolean_t reschedule = B_FALSE; uint8_t ds, tgt_dev_state; int rc; pmcs_xscsi_t *tgt; @@ -278,6 +279,9 @@ "%s: DS recovery on PHY %s " "re-invoked too soon. Skipping...", __func__, pptr->path); + if ((tgt) && (tgt->recover_wait)) { + reschedule = B_TRUE; + } goto next_phy; } } @@ -453,6 +457,10 @@ pwp->ds_err_recovering = 0; mutex_exit(&pwp->lock); } + + if (reschedule) { + SCHEDULE_WORK(pwp, PMCS_WORK_DS_ERR_RECOVERY); + } } /*