|
@@ -628,11 +628,12 @@ _scsih_sas_device_add(struct MPT2SAS_ADAPTER *ioc,
|
|
|
* devices while scanning is turned on due to an oops in
|
|
|
* scsi_sysfs_add_sdev()->add_device()->sysfs_addrm_start()
|
|
|
*/
|
|
|
- if (!ioc->is_driver_loading)
|
|
|
+ if (!ioc->is_driver_loading) {
|
|
|
mpt2sas_transport_port_remove(ioc,
|
|
|
sas_device->sas_address,
|
|
|
sas_device->sas_address_parent);
|
|
|
- _scsih_sas_device_remove(ioc, sas_device);
|
|
|
+ _scsih_sas_device_remove(ioc, sas_device);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -7916,10 +7917,12 @@ _scsih_probe_boot_devices(struct MPT2SAS_ADAPTER *ioc)
|
|
|
sas_device->sas_address_parent)) {
|
|
|
_scsih_sas_device_remove(ioc, sas_device);
|
|
|
} else if (!sas_device->starget) {
|
|
|
- if (!ioc->is_driver_loading)
|
|
|
- mpt2sas_transport_port_remove(ioc, sas_address,
|
|
|
+ if (!ioc->is_driver_loading) {
|
|
|
+ mpt2sas_transport_port_remove(ioc,
|
|
|
+ sas_address,
|
|
|
sas_address_parent);
|
|
|
- _scsih_sas_device_remove(ioc, sas_device);
|
|
|
+ _scsih_sas_device_remove(ioc, sas_device);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -7972,14 +7975,14 @@ _scsih_probe_sas(struct MPT2SAS_ADAPTER *ioc)
|
|
|
kfree(sas_device);
|
|
|
continue;
|
|
|
} else if (!sas_device->starget) {
|
|
|
- if (!ioc->is_driver_loading)
|
|
|
+ if (!ioc->is_driver_loading) {
|
|
|
mpt2sas_transport_port_remove(ioc,
|
|
|
sas_device->sas_address,
|
|
|
sas_device->sas_address_parent);
|
|
|
- list_del(&sas_device->list);
|
|
|
- kfree(sas_device);
|
|
|
- continue;
|
|
|
-
|
|
|
+ list_del(&sas_device->list);
|
|
|
+ kfree(sas_device);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
}
|
|
|
spin_lock_irqsave(&ioc->sas_device_lock, flags);
|
|
|
list_move_tail(&sas_device->list, &ioc->sas_device_list);
|