diff options
author | mjacob <mjacob@FreeBSD.org> | 2007-02-23 05:39:58 +0000 |
---|---|---|
committer | mjacob <mjacob@FreeBSD.org> | 2007-02-23 05:39:58 +0000 |
commit | 722dc3101f04516321b1a9c5e83bff184bd35612 (patch) | |
tree | fa2f112d64ce18d2be51bb8d49225e023c082366 /sys/dev | |
parent | 4c5d9596112b8e98a1d49c75442c54cadc4e225d (diff) | |
download | FreeBSD-src-722dc3101f04516321b1a9c5e83bff184bd35612.zip FreeBSD-src-722dc3101f04516321b1a9c5e83bff184bd35612.tar.gz |
Be a bit more restrictive about printing out 'bad' pdb entries
during loop rescans. They're not bad so much as unstable, so
don't print this stuff out unless ISP_LOGSANCFG is set.
Diffstat (limited to 'sys/dev')
-rw-r--r-- | sys/dev/isp/isp.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/sys/dev/isp/isp.c b/sys/dev/isp/isp.c index 4c4a81e..008a534 100644 --- a/sys/dev/isp/isp.c +++ b/sys/dev/isp/isp.c @@ -2963,17 +2963,19 @@ isp_scan_loop(ispsoftc_t *isp) /* * Check to make sure it's still a valid entry. The 24XX seems * to return a portid but not a WWPN/WWNN or role for devices - * which shift on a loop. + * which shift on a loop, or have a WWPN/WWNN but no portid. */ if (tmp.node_wwn == 0 || tmp.port_wwn == 0 || tmp.portid == 0) { - int a, b, c; - a = (tmp.node_wwn == 0); - b = (tmp.port_wwn == 0); - c = (tmp.portid == 0); - isp_prt(isp, ISP_LOGWARN, - "bad pdb (%1d%1d%1d) @ handle 0x%x", a, b, c, - handle); - isp_dump_portdb(isp); + if (isp->isp_dblev & ISP_LOGSANCFG) { + int a, b, c; + a = !(tmp.node_wwn == 0); + b = !(tmp.port_wwn == 0); + c = !(tmp.portid == 0); + isp_prt(isp, ISP_LOGALL, + "bad pdb (%1d%1d%1d) @ handle 0x%x", + a, b, c, handle); + isp_dump_portdb(isp); + } continue; } |