[PATCH 4.7 122/141] scsi: ses: use scsi_is_sas_rphy instead of is_sas_attached

From: Greg Kroah-Hartman
Date: Thu Oct 06 2016 - 04:47:18 EST

4.7-stable review patch. If anyone has any objections, please let me know.


From: Johannes Thumshirn <jthumshirn@xxxxxxx>

commit 835831c57e9b0cccc24e96a812542875471d75b5 upstream.

Use scsi_is_sas_rphy() instead of is_sas_attached() to decide whether we
should obtain the SAS address from a scsi device or not. This will
prevent us from tripping on the BUG_ON() in sas_sdev_to_rdev() if the
rphy isn't attached to the SAS transport class, like it is with hpsa's
logical devices.

Fixes: 3f8d6f2a0 ('ses: fix discovery of SATA devices in SAS enclosures')
Signed-off-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
Reviewed-by: James E.J. Bottomley <jejb@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

drivers/scsi/ses.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/scsi/ses.c
+++ b/drivers/scsi/ses.c
@@ -587,7 +587,7 @@ static void ses_match_to_enclosure(struc

ses_enclosure_data_process(edev, to_scsi_device(edev->edev.parent), 0);

- if (is_sas_attached(sdev))
+ if (scsi_is_sas_rphy(&sdev->sdev_gendev))
efd.addr = sas_get_address(sdev);

if (efd.addr) {