diff options
Diffstat (limited to 'drivers/scsi/libsas/sas_port.c')
-rw-r--r-- | drivers/scsi/libsas/sas_port.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/scsi/libsas/sas_port.c b/drivers/scsi/libsas/sas_port.c index 64722f42b256..f07e55d3aa73 100644 --- a/drivers/scsi/libsas/sas_port.c +++ b/drivers/scsi/libsas/sas_port.c | |||
@@ -66,6 +66,7 @@ static void sas_resume_port(struct asd_sas_phy *phy) | |||
66 | rc = sas_notify_lldd_dev_found(dev); | 66 | rc = sas_notify_lldd_dev_found(dev); |
67 | if (rc) { | 67 | if (rc) { |
68 | sas_unregister_dev(port, dev); | 68 | sas_unregister_dev(port, dev); |
69 | sas_destruct_devices(port); | ||
69 | continue; | 70 | continue; |
70 | } | 71 | } |
71 | 72 | ||
@@ -220,6 +221,7 @@ void sas_deform_port(struct asd_sas_phy *phy, int gone) | |||
220 | 221 | ||
221 | if (port->num_phys == 1) { | 222 | if (port->num_phys == 1) { |
222 | sas_unregister_domain_devices(port, gone); | 223 | sas_unregister_domain_devices(port, gone); |
224 | sas_destruct_devices(port); | ||
223 | sas_port_delete(port->port); | 225 | sas_port_delete(port->port); |
224 | port->port = NULL; | 226 | port->port = NULL; |
225 | } else { | 227 | } else { |
@@ -317,6 +319,7 @@ static void sas_init_port(struct asd_sas_port *port, | |||
317 | INIT_LIST_HEAD(&port->dev_list); | 319 | INIT_LIST_HEAD(&port->dev_list); |
318 | INIT_LIST_HEAD(&port->disco_list); | 320 | INIT_LIST_HEAD(&port->disco_list); |
319 | INIT_LIST_HEAD(&port->destroy_list); | 321 | INIT_LIST_HEAD(&port->destroy_list); |
322 | INIT_LIST_HEAD(&port->sas_port_del_list); | ||
320 | spin_lock_init(&port->phy_list_lock); | 323 | spin_lock_init(&port->phy_list_lock); |
321 | INIT_LIST_HEAD(&port->phy_list); | 324 | INIT_LIST_HEAD(&port->phy_list); |
322 | port->ha = sas_ha; | 325 | port->ha = sas_ha; |