diff options
| author | Dan Williams <dan.j.williams@intel.com> | 2011-09-20 15:10:19 -0700 | 
|---|---|---|
| committer | James Bottomley <JBottomley@Parallels.com> | 2011-10-02 12:29:19 -0500 | 
| commit | 2fc62e2ac350b8f574e0a09170b350a8f2fa4a02 (patch) | |
| tree | 8ea7fd1c8a1897f05d8131eaca144eac4c4d0f04 | |
| parent | ffaac8f45bfb2dffb78179baa5740de34058eef8 (diff) | |
| download | olio-linux-3.10-2fc62e2ac350b8f574e0a09170b350a8f2fa4a02.tar.xz olio-linux-3.10-2fc62e2ac350b8f574e0a09170b350a8f2fa4a02.zip  | |
[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 c6fcf76cade..9d9330ae421 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)  	if (identify->device_type == SAS_END_DEVICE &&  	    rphy->scsi_target_id != -1) { -		scsi_scan_target(&rphy->dev, 0, -				rphy->scsi_target_id, SCAN_WILD_CARD, 0); +		int lun; + +		if (identify->target_port_protocols & SAS_PROTOCOL_SSP) +			lun = SCAN_WILD_CARD; +		else +			lun = 0; + +		scsi_scan_target(&rphy->dev, 0, rphy->scsi_target_id, lun, 0);  	}  	return 0;  |