]> git.baikalelectronics.ru Git - kernel.git/commit
scsi: libsas: initialize sas_phy status according to response of DISCOVER
authorchenxiang <chenxiang66@hisilicon.com>
Thu, 4 Jan 2018 13:04:33 +0000 (21:04 +0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 9 Jan 2018 02:43:05 +0000 (21:43 -0500)
commitd2d4c15db23816c7bd800625b7d040e7fb2139ec
treee52aecf25376760e9e21092e59d11708dc86e78d
parente37ec28d9250074458ce74d1bea1a9bc1496d565
scsi: libsas: initialize sas_phy status according to response of DISCOVER

The status of SAS PHY is in sas_phy->enabled. There is an issue that the
status of a remote SAS PHY may be initialized incorrectly: if disable
remote SAS PHY through sysfs interface (such as echo 0 >
/sys/class/sas_phy/phy-1:0:0/enable), then reboot the system, and we
will find the status of remote SAS PHY which is disabled before is
1 (cat /sys/class/sas_phy/phy-1:0:0/enable). But actually the status of
remote SAS PHY is disabled and the device attached is not found.

In SAS protocol, NEGOTIATED LOGICAL LINK RATE field of DISCOVER response
is 0x1 when remote SAS PHY is disabled. So initialize sas_phy->enabled
according to the value of NEGOTIATED LOGICAL LINK RATE field.

Signed-off-by: chenxiang <chenxiang66@hisilicon.com>
Reviewed-by: John Garry <john.garry@huawei.com>
Signed-off-by: Jason Yan <yanaijie@huawei.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/libsas/sas_expander.c