summaryrefslogtreecommitdiffstats
path: root/sys/cam/ctl/scsi_ctl.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/cam/ctl/scsi_ctl.c')
-rw-r--r--sys/cam/ctl/scsi_ctl.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/sys/cam/ctl/scsi_ctl.c b/sys/cam/ctl/scsi_ctl.c
index ba59550..74ec3df 100644
--- a/sys/cam/ctl/scsi_ctl.c
+++ b/sys/cam/ctl/scsi_ctl.c
@@ -1657,16 +1657,24 @@ ctlfe_onoffline(void *arg, int online)
* down to the SIM. Otherwise, record what the SIM
* has reported.
*/
- if ((bus_softc->port.wwnn != 0)
- && (bus_softc->port.wwpn != 0)) {
+ if (bus_softc->port.wwnn != 0 && bus_softc->port.wwnn
+ != ccb->knob.xport_specific.fc.wwnn) {
ccb->knob.xport_specific.fc.wwnn =
- bus_softc->port.wwnn;
- ccb->knob.xport_specific.fc.wwpn =
- bus_softc->port.wwpn;
+ bus_softc->port.wwnn;
set_wwnn = 1;
} else {
ctl_port_set_wwns(&bus_softc->port,
true, ccb->knob.xport_specific.fc.wwnn,
+ false, 0);
+ }
+ if (bus_softc->port.wwpn != 0 && bus_softc->port.wwpn
+ != ccb->knob.xport_specific.fc.wwpn) {
+ ccb->knob.xport_specific.fc.wwpn =
+ bus_softc->port.wwpn;
+ set_wwnn = 1;
+ } else {
+ ctl_port_set_wwns(&bus_softc->port,
+ false, 0,
true, ccb->knob.xport_specific.fc.wwpn);
}
#endif /* RANDOM_WWNN */
OpenPOWER on IntegriCloud