Commit 6d99a3f3 authored by James Bottomley's avatar James Bottomley Committed by James Bottomley

[SCSI] scsi_transport_sas; fix user_scan

the user_scan() callback currently has the potential to identify the
wrong device in the presence of expanders.  This is because it finds
the first device with a matching target_id, which might be an
expander.  Fix this by making it look specifically for end devices.
Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
parent 78a904b6
...@@ -955,7 +955,8 @@ static int sas_user_scan(struct Scsi_Host *shost, uint channel, ...@@ -955,7 +955,8 @@ static int sas_user_scan(struct Scsi_Host *shost, uint channel,
list_for_each_entry(rphy, &sas_host->rphy_list, list) { list_for_each_entry(rphy, &sas_host->rphy_list, list) {
struct sas_phy *parent = dev_to_phy(rphy->dev.parent); struct sas_phy *parent = dev_to_phy(rphy->dev.parent);
if (rphy->scsi_target_id == -1) if (rphy->identify.device_type != SAS_END_DEVICE ||
rphy->scsi_target_id == -1)
continue; continue;
if ((channel == SCAN_WILD_CARD || channel == parent->port_identifier) && if ((channel == SCAN_WILD_CARD || channel == parent->port_identifier) &&
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment