diff options
author | Dan Williams <dan.j.williams@intel.com> | 2011-09-20 18:10:19 -0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2011-10-02 13:29:19 -0400 |
commit | 2fc62e2ac350b8f574e0a09170b350a8f2fa4a02 (patch) | |
tree | 8ea7fd1c8a1897f05d8131eaca144eac4c4d0f04 | |
parent | ffaac8f45bfb2dffb78179baa5740de34058eef8 (diff) |
[SCSI] libsas: disable scanning lun > 0 on ata devices
Currently mvsas and pm8001 have custom ->slave_alloc implementations to
achieve this. Uplevel it for all libsas drivers as isci encounters problems
with atapi devices when scanning past lun0.
Just do what Darrick suggested [1], and limit the scan for ata devices.
[1] http://marc.info/?l=linux-scsi&m=116604101119861&w=2
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
-rw-r--r-- | drivers/scsi/scsi_transport_sas.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/scsi/scsi_transport_sas.c b/drivers/scsi/scsi_transport_sas.c index c6fcf76cade5..9d9330ae4213 100644 --- a/drivers/scsi/scsi_transport_sas.c +++ b/drivers/scsi/scsi_transport_sas.c | |||
@@ -1545,8 +1545,14 @@ int sas_rphy_add(struct sas_rphy *rphy) | |||
1545 | 1545 | ||
1546 | if (identify->device_type == SAS_END_DEVICE && | 1546 | if (identify->device_type == SAS_END_DEVICE && |
1547 | rphy->scsi_target_id != -1) { | 1547 | rphy->scsi_target_id != -1) { |
1548 | scsi_scan_target(&rphy->dev, 0, | 1548 | int lun; |
1549 | rphy->scsi_target_id, SCAN_WILD_CARD, 0); | 1549 | |
1550 | if (identify->target_port_protocols & SAS_PROTOCOL_SSP) | ||
1551 | lun = SCAN_WILD_CARD; | ||
1552 | else | ||
1553 | lun = 0; | ||
1554 | |||
1555 | scsi_scan_target(&rphy->dev, 0, rphy->scsi_target_id, lun, 0); | ||
1550 | } | 1556 | } |
1551 | 1557 | ||
1552 | return 0; | 1558 | return 0; |