diff options
-rw-r--r-- | drivers/scsi/mpt3sas/mpt3sas_scsih.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/drivers/scsi/mpt3sas/mpt3sas_scsih.c b/drivers/scsi/mpt3sas/mpt3sas_scsih.c index 632eba75971c..8cbe8fd21fc4 100644 --- a/drivers/scsi/mpt3sas/mpt3sas_scsih.c +++ b/drivers/scsi/mpt3sas/mpt3sas_scsih.c | |||
@@ -675,11 +675,12 @@ _scsih_sas_device_add(struct MPT3SAS_ADAPTER *ioc, | |||
675 | * devices while scanning is turned on due to an oops in | 675 | * devices while scanning is turned on due to an oops in |
676 | * scsi_sysfs_add_sdev()->add_device()->sysfs_addrm_start() | 676 | * scsi_sysfs_add_sdev()->add_device()->sysfs_addrm_start() |
677 | */ | 677 | */ |
678 | if (!ioc->is_driver_loading) | 678 | if (!ioc->is_driver_loading) { |
679 | mpt3sas_transport_port_remove(ioc, | 679 | mpt3sas_transport_port_remove(ioc, |
680 | sas_device->sas_address, | 680 | sas_device->sas_address, |
681 | sas_device->sas_address_parent); | 681 | sas_device->sas_address_parent); |
682 | _scsih_sas_device_remove(ioc, sas_device); | 682 | _scsih_sas_device_remove(ioc, sas_device); |
683 | } | ||
683 | } | 684 | } |
684 | } | 685 | } |
685 | 686 | ||
@@ -7531,10 +7532,12 @@ _scsih_probe_boot_devices(struct MPT3SAS_ADAPTER *ioc) | |||
7531 | sas_address_parent)) { | 7532 | sas_address_parent)) { |
7532 | _scsih_sas_device_remove(ioc, sas_device); | 7533 | _scsih_sas_device_remove(ioc, sas_device); |
7533 | } else if (!sas_device->starget) { | 7534 | } else if (!sas_device->starget) { |
7534 | if (!ioc->is_driver_loading) | 7535 | if (!ioc->is_driver_loading) { |
7535 | mpt3sas_transport_port_remove(ioc, sas_address, | 7536 | mpt3sas_transport_port_remove(ioc, |
7537 | sas_address, | ||
7536 | sas_address_parent); | 7538 | sas_address_parent); |
7537 | _scsih_sas_device_remove(ioc, sas_device); | 7539 | _scsih_sas_device_remove(ioc, sas_device); |
7540 | } | ||
7538 | } | 7541 | } |
7539 | } | 7542 | } |
7540 | } | 7543 | } |
@@ -7590,13 +7593,14 @@ _scsih_probe_sas(struct MPT3SAS_ADAPTER *ioc) | |||
7590 | * oops in scsi_sysfs_add_sdev()->add_device()-> | 7593 | * oops in scsi_sysfs_add_sdev()->add_device()-> |
7591 | * sysfs_addrm_start() | 7594 | * sysfs_addrm_start() |
7592 | */ | 7595 | */ |
7593 | if (!ioc->is_driver_loading) | 7596 | if (!ioc->is_driver_loading) { |
7594 | mpt3sas_transport_port_remove(ioc, | 7597 | mpt3sas_transport_port_remove(ioc, |
7595 | sas_device->sas_address, | 7598 | sas_device->sas_address, |
7596 | sas_device->sas_address_parent); | 7599 | sas_device->sas_address_parent); |
7597 | list_del(&sas_device->list); | 7600 | list_del(&sas_device->list); |
7598 | kfree(sas_device); | 7601 | kfree(sas_device); |
7599 | continue; | 7602 | continue; |
7603 | } | ||
7600 | } | 7604 | } |
7601 | 7605 | ||
7602 | spin_lock_irqsave(&ioc->sas_device_lock, flags); | 7606 | spin_lock_irqsave(&ioc->sas_device_lock, flags); |