aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/isp
diff options
context:
space:
mode:
authorKenneth D. Merry <ken@FreeBSD.org>2019-05-24 17:58:29 +0000
committerKenneth D. Merry <ken@FreeBSD.org>2019-05-24 17:58:29 +0000
commite26059ca18cac88ceb2c6274b160fef3bdf84498 (patch)
tree2326d57af526d4f0e1835822e945971a2045a8fc /sys/dev/isp
parenta9c7546a1df1b1e249c6c1e45bf4ced36f00c7af (diff)
Notes
Diffstat (limited to 'sys/dev/isp')
-rw-r--r--sys/dev/isp/isp.c4
-rw-r--r--sys/dev/isp/isp_freebsd.c2
2 files changed, 4 insertions, 2 deletions
diff --git a/sys/dev/isp/isp.c b/sys/dev/isp/isp.c
index 77f5045783e4..b81e3de28022 100644
--- a/sys/dev/isp/isp.c
+++ b/sys/dev/isp/isp.c
@@ -3251,7 +3251,8 @@ isp_pdb_add_update(ispsoftc_t *isp, int chan, isp_pdb_t *pdb)
if (lp->portid == pdb->portid &&
lp->handle == pdb->handle &&
lp->prli_word3 == pdb->prli_word3 &&
- ((pdb->prli_word0 & PRLI_WD0_EST_IMAGE_PAIR) == 0)) {
+ ((pdb->prli_word0 & PRLI_WD0_EST_IMAGE_PAIR) ==
+ (lp->prli_word0 & PRLI_WD0_EST_IMAGE_PAIR))) {
if (lp->state != FC_PORTDB_STATE_NEW)
lp->state = FC_PORTDB_STATE_VALID;
isp_prt(isp, ISP_LOG_SANCFG,
@@ -3282,6 +3283,7 @@ isp_pdb_add_update(ispsoftc_t *isp, int chan, isp_pdb_t *pdb)
lp->probational = 0;
lp->state = FC_PORTDB_STATE_NEW;
lp->portid = lp->new_portid = pdb->portid;
+ lp->prli_word0 = lp->new_prli_word0 = pdb->prli_word0;
lp->prli_word3 = lp->new_prli_word3 = pdb->prli_word3;
lp->handle = pdb->handle;
lp->port_wwn = wwpn;
diff --git a/sys/dev/isp/isp_freebsd.c b/sys/dev/isp/isp_freebsd.c
index df671d123d20..c6884c3a7f68 100644
--- a/sys/dev/isp/isp_freebsd.c
+++ b/sys/dev/isp/isp_freebsd.c
@@ -3789,7 +3789,7 @@ isp_async(ispsoftc_t *isp, ispasync_t cmd, ...)
xpt_async(AC_CONTRACT, fc->path, &ac);
}
- if ((lp->new_prli_word0 & PRLI_WD0_EST_IMAGE_PAIR) &&
+ if ((cmd == ISPASYNC_DEV_CHANGED) &&
(crn_reset_done == 0))
isp_fcp_reset_crn(isp, bus, tgt, /*tgt_set*/ 1);