aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/libsas/sas_event.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/libsas/sas_event.c')
-rw-r--r--drivers/scsi/libsas/sas_event.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/scsi/libsas/sas_event.c b/drivers/scsi/libsas/sas_event.c
index 8c82c007763d..ae923eb6de95 100644
--- a/drivers/scsi/libsas/sas_event.c
+++ b/drivers/scsi/libsas/sas_event.c
@@ -116,11 +116,17 @@ void sas_enable_revalidation(struct sas_ha_struct *ha)
116 struct asd_sas_port *port = ha->sas_port[i]; 116 struct asd_sas_port *port = ha->sas_port[i];
117 const int ev = DISCE_REVALIDATE_DOMAIN; 117 const int ev = DISCE_REVALIDATE_DOMAIN;
118 struct sas_discovery *d = &port->disc; 118 struct sas_discovery *d = &port->disc;
119 struct asd_sas_phy *sas_phy;
119 120
120 if (!test_and_clear_bit(ev, &d->pending)) 121 if (!test_and_clear_bit(ev, &d->pending))
121 continue; 122 continue;
122 123
123 sas_queue_event(ev, &d->disc_work[ev].work, ha); 124 if (list_empty(&port->phy_list))
125 continue;
126
127 sas_phy = container_of(port->phy_list.next, struct asd_sas_phy,
128 port_phy_el);
129 ha->notify_port_event(sas_phy, PORTE_BROADCAST_RCVD);
124 } 130 }
125 mutex_unlock(&ha->disco_mutex); 131 mutex_unlock(&ha->disco_mutex);
126} 132}