Commit 71996bb8 authored by Michal Grzedzicki's avatar Michal Grzedzicki Committed by Martin K. Petersen
Browse files

scsi: pm80xx: Use phy-specific SAS address when sending PHY_START command

Some cards have more than one SAS address. Using an incorrect address
causes communication issues with some devices like expanders.

Closes: https://lore.kernel.org/linux-kernel/A57AEA84-5CA0-403E-8053-106033C73C70@fb.com/


Signed-off-by: default avatarMichal Grzedzicki <mge@meta.com>
Link: https://lore.kernel.org/r/20230913155611.3183612-1-mge@meta.com


Acked-by: default avatarJack Wang <jinpu.wang@ionos.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 4f6cee60
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -4180,7 +4180,7 @@ pm8001_chip_phy_start_req(struct pm8001_hba_info *pm8001_ha, u8 phy_id)
	payload.sas_identify.dev_type = SAS_END_DEVICE;
	payload.sas_identify.initiator_bits = SAS_PROTOCOL_ALL;
	memcpy(payload.sas_identify.sas_addr,
		pm8001_ha->sas_addr, SAS_ADDR_SIZE);
		&pm8001_ha->phy[phy_id].dev_sas_addr, SAS_ADDR_SIZE);
	payload.sas_identify.phy_id = phy_id;

	return pm8001_mpi_build_cmd(pm8001_ha, 0, opcode, &payload,
+1 −1
Original line number Diff line number Diff line
@@ -4671,7 +4671,7 @@ pm80xx_chip_phy_start_req(struct pm8001_hba_info *pm8001_ha, u8 phy_id)
	payload.sas_identify.dev_type = SAS_END_DEVICE;
	payload.sas_identify.initiator_bits = SAS_PROTOCOL_ALL;
	memcpy(payload.sas_identify.sas_addr,
	  &pm8001_ha->sas_addr, SAS_ADDR_SIZE);
		&pm8001_ha->phy[phy_id].dev_sas_addr, SAS_ADDR_SIZE);
	payload.sas_identify.phy_id = phy_id;

	return pm8001_mpi_build_cmd(pm8001_ha, 0, opcode, &payload,