aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuo Jiaxing <luojiaxing@huawei.com>2018-09-24 23:06:28 +0800
committerMartin K. Petersen <martin.petersen@oracle.com>2018-10-16 00:27:03 -0400
commit5a54691f874ab29ec82f08bc6936866a3ccdaa91 (patch)
treee45416fb49b51c8b770536732712e67cda4fdcda
parentscsi: target: Fix target_wait_for_sess_cmds breakage with active signals (diff)
downloadlinux-dev-5a54691f874ab29ec82f08bc6936866a3ccdaa91.tar.xz
linux-dev-5a54691f874ab29ec82f08bc6936866a3ccdaa91.zip
scsi: hisi_sas: Feed back linkrate(max/min) when re-attached
At directly attached situation, if the user modifies the sysfs interface of maximum_linkrate and minimum_linkrate to renegotiate the linkrate between SAS controller and target, the value of both files mentioned above should have change to user setting after renegotiate is over, but it remains unchanged. To fix this bug, maximum_linkrate and minimum_linkrate will be directly fed back to relevant sas_phy structure. Signed-off-by: Luo Jiaxing <luojiaxing@huawei.com> Signed-off-by: John Garry <john.garry@huawei.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-rw-r--r--drivers/scsi/hisi_sas/hisi_sas_main.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c b/drivers/scsi/hisi_sas/hisi_sas_main.c
index 1975c9266978..791787b814de 100644
--- a/drivers/scsi/hisi_sas/hisi_sas_main.c
+++ b/drivers/scsi/hisi_sas/hisi_sas_main.c
@@ -904,6 +904,9 @@ static void hisi_sas_phy_set_linkrate(struct hisi_hba *hisi_hba, int phy_no,
_r.maximum_linkrate = max;
_r.minimum_linkrate = min;
+ sas_phy->phy->maximum_linkrate = max;
+ sas_phy->phy->minimum_linkrate = min;
+
hisi_hba->hw->phy_disable(hisi_hba, phy_no);
msleep(100);
hisi_hba->hw->phy_set_linkrate(hisi_hba, phy_no, &_r);