diff options
| author | Matt Jacob <mjacob@FreeBSD.org> | 2001-06-05 17:11:06 +0000 |
|---|---|---|
| committer | Matt Jacob <mjacob@FreeBSD.org> | 2001-06-05 17:11:06 +0000 |
| commit | 6a23026c6ee0bf76729d493db447cc04143b80d2 (patch) | |
| tree | f7c08e4267b4734627144e0c0bf1b83c87b1c8ec /sys/dev/isp/isp.c | |
| parent | 7528c356f5debb40701327951e13e63e22ad367c (diff) | |
Notes
Diffstat (limited to 'sys/dev/isp/isp.c')
| -rw-r--r-- | sys/dev/isp/isp.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/dev/isp/isp.c b/sys/dev/isp/isp.c index 7797a97a6fbb..6680fc457e69 100644 --- a/sys/dev/isp/isp.c +++ b/sys/dev/isp/isp.c @@ -1685,7 +1685,7 @@ isp_pdb_sync(struct ispsoftc *isp) if (pdb.pdb_loopid == lp->loopid && lp->portid == (u_int32_t) BITS2WORD(pdb.pdb_portid_bits) && nwwnn == lp->node_wwn && nwwpn == lp->port_wwn && - lp->roles == nrole) { + lp->roles == nrole && lp->force_logout == 0) { lp->loggedin = lp->valid = 1; isp_prt(isp, ISP_LOGINFO, lretained, (int) (lp - fcp->portdb), @@ -1694,6 +1694,8 @@ isp_pdb_sync(struct ispsoftc *isp) } } + lp->force_logout = 0; + if (fcp->isp_fwstate != FW_READY || fcp->isp_loopstate != LOOP_SYNCING_PDB) { return (-1); @@ -2075,6 +2077,8 @@ isp_scan_loop(struct ispsoftc *isp) * No need to notify anyone- go for the next one. */ if (i < hival) { + isp_prt(isp, ISP_LOGINFO, retained, + fcp->portdb[i].loopid, i, fcp->portdb[i].portid); continue; } @@ -3791,7 +3795,6 @@ isp_parse_status(struct ispsoftc *isp, ispstatusreq_t *sp, XS_T *xs) XS_SETERR(xs, HBA_SELTIMEOUT); } return; - case RQCS_PORT_LOGGED_OUT: /* * It was there (maybe)- treat as a selection timeout. |
