[SRU,Bionic,SRU,Artful,Unstable] scsi: hisi_sas: make SAS address of SATA disks unique

Message ID 20180613200055.GA20050@xps13.dannf
State New
Headers show
Series
  • [SRU,Bionic,SRU,Artful,Unstable] scsi: hisi_sas: make SAS address of SATA disks unique
Related show

Commit Message

dann frazier June 13, 2018, 8 p.m.
From: Xiang Chen <chenxiang66@hisilicon.com>

BugLink: https://bugs.launchpad.net/bugs/1776750

When directly connected with SATA disks in different SAS cores, fill SAS
address with scsi_host's id to make it's fake SAS address unique.

Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com>
Signed-off-by: John Garry <john.garry@huawei.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
(cherry picked from commit 8b8d66531555006a18d1532546dadbea8d16df95)
Signed-off-by: dann frazier <dann.frazier@canonical.com>
---
 drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Stefan Bader June 15, 2018, 3:06 p.m. | #1
On 13.06.2018 22:00, dann frazier wrote:
> From: Xiang Chen <chenxiang66@hisilicon.com>
> 
> BugLink: https://bugs.launchpad.net/bugs/1776750
> 
> When directly connected with SATA disks in different SAS cores, fill SAS
> address with scsi_host's id to make it's fake SAS address unique.
> 
> Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com>
> Signed-off-by: John Garry <john.garry@huawei.com>
> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
> (cherry picked from commit 8b8d66531555006a18d1532546dadbea8d16df95)
> Signed-off-by: dann frazier <dann.frazier@canonical.com>
Acked-by: Stefan Bader <stefan.bader@canonical.com>
> ---

ACK for Bionic [and unstable if needed], NACK for Artful as that reaches EOL
soon and should only get changes of high/critical importance.

-Stefan

>  drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
> index 0215c2e3380e..5d6b5a73e6f7 100644
> --- a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
> +++ b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
> @@ -3240,6 +3240,7 @@ static irqreturn_t sata_int_v2_hw(int irq_no, void *p)
>  	sas_phy->oob_mode = SATA_OOB_MODE;
>  	/* Make up some unique SAS address */
>  	attached_sas_addr[0] = 0x50;
> +	attached_sas_addr[6] = hisi_hba->shost->host_no;
>  	attached_sas_addr[7] = phy_no;
>  	memcpy(sas_phy->attached_sas_addr, attached_sas_addr, SAS_ADDR_SIZE);
>  	memcpy(sas_phy->frame_rcvd, fis, sizeof(struct dev_to_host_fis));
>
Khaled Elmously June 17, 2018, 6:21 a.m. | #2
On 2018-06-13 14:00:55 , dann frazier wrote:
> From: Xiang Chen <chenxiang66@hisilicon.com>
> 
> BugLink: https://bugs.launchpad.net/bugs/1776750
> 
> When directly connected with SATA disks in different SAS cores, fill SAS
> address with scsi_host's id to make it's fake SAS address unique.
> 
> Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com>
> Signed-off-by: John Garry <john.garry@huawei.com>
> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
> (cherry picked from commit 8b8d66531555006a18d1532546dadbea8d16df95)
> Signed-off-by: dann frazier <dann.frazier@canonical.com>
> ---
>  drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
> index 0215c2e3380e..5d6b5a73e6f7 100644
> --- a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
> +++ b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
> @@ -3240,6 +3240,7 @@ static irqreturn_t sata_int_v2_hw(int irq_no, void *p)
>  	sas_phy->oob_mode = SATA_OOB_MODE;
>  	/* Make up some unique SAS address */
>  	attached_sas_addr[0] = 0x50;
> +	attached_sas_addr[6] = hisi_hba->shost->host_no;
>  	attached_sas_addr[7] = phy_no;
>  	memcpy(sas_phy->attached_sas_addr, attached_sas_addr, SAS_ADDR_SIZE);
>  	memcpy(sas_phy->frame_rcvd, fis, sizeof(struct dev_to_host_fis));

Acked-by: Khalid Elmously <khalid.elmously@canonical.com>
Khaled Elmously June 19, 2018, 6:07 a.m. | #3
Applied to Bionic

On 2018-06-13 14:00:55 , dann frazier wrote:
> From: Xiang Chen <chenxiang66@hisilicon.com>
> 
> BugLink: https://bugs.launchpad.net/bugs/1776750
> 
> When directly connected with SATA disks in different SAS cores, fill SAS
> address with scsi_host's id to make it's fake SAS address unique.
> 
> Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com>
> Signed-off-by: John Garry <john.garry@huawei.com>
> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
> (cherry picked from commit 8b8d66531555006a18d1532546dadbea8d16df95)
> Signed-off-by: dann frazier <dann.frazier@canonical.com>
> ---
>  drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
> index 0215c2e3380e..5d6b5a73e6f7 100644
> --- a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
> +++ b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
> @@ -3240,6 +3240,7 @@ static irqreturn_t sata_int_v2_hw(int irq_no, void *p)
>  	sas_phy->oob_mode = SATA_OOB_MODE;
>  	/* Make up some unique SAS address */
>  	attached_sas_addr[0] = 0x50;
> +	attached_sas_addr[6] = hisi_hba->shost->host_no;
>  	attached_sas_addr[7] = phy_no;
>  	memcpy(sas_phy->attached_sas_addr, attached_sas_addr, SAS_ADDR_SIZE);
>  	memcpy(sas_phy->frame_rcvd, fis, sizeof(struct dev_to_host_fis));
> -- 
> 2.17.1
> 
> 
> -- 
> kernel-team mailing list
> kernel-team@lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team
Thadeu Lima de Souza Cascardo June 26, 2018, 3:56 p.m. | #4
Applied to unstable master branch.

Thanks.
Cascardo.

Applied-to: unstable/master

Patch

diff --git a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
index 0215c2e3380e..5d6b5a73e6f7 100644
--- a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
+++ b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
@@ -3240,6 +3240,7 @@  static irqreturn_t sata_int_v2_hw(int irq_no, void *p)
 	sas_phy->oob_mode = SATA_OOB_MODE;
 	/* Make up some unique SAS address */
 	attached_sas_addr[0] = 0x50;
+	attached_sas_addr[6] = hisi_hba->shost->host_no;
 	attached_sas_addr[7] = phy_no;
 	memcpy(sas_phy->attached_sas_addr, attached_sas_addr, SAS_ADDR_SIZE);
 	memcpy(sas_phy->frame_rcvd, fis, sizeof(struct dev_to_host_fis));