Commit 4c51f956 authored by Sreekanth Reddy's avatar Sreekanth Reddy Committed by Martin K. Petersen

scsi: mpt3sas: Only one vSES is present even when IOC has multi vSES

Whenever the driver is adding a vSES to virtual-phys list it is
reinitializing the list head. Hence those vSES devices which were added
previously are lost.

Stop reinitializing the list every time a new vSES device is added.

Link: https://lore.kernel.org/r/20210330105004.20413-1-sreekanth.reddy@broadcom.com
Cc: stable@vger.kernel.org #v5.11.10+
Signed-off-by: default avatarSreekanth Reddy <sreekanth.reddy@broadcom.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 1b5ad814
...@@ -6484,6 +6484,9 @@ _scsih_alloc_vphy(struct MPT3SAS_ADAPTER *ioc, u8 port_id, u8 phy_num) ...@@ -6484,6 +6484,9 @@ _scsih_alloc_vphy(struct MPT3SAS_ADAPTER *ioc, u8 port_id, u8 phy_num)
if (!vphy) if (!vphy)
return NULL; return NULL;
if (!port->vphys_mask)
INIT_LIST_HEAD(&port->vphys_list);
/* /*
* Enable bit corresponding to HBA phy number on its * Enable bit corresponding to HBA phy number on its
* parent hba_port object's vphys_mask field. * parent hba_port object's vphys_mask field.
...@@ -6491,7 +6494,6 @@ _scsih_alloc_vphy(struct MPT3SAS_ADAPTER *ioc, u8 port_id, u8 phy_num) ...@@ -6491,7 +6494,6 @@ _scsih_alloc_vphy(struct MPT3SAS_ADAPTER *ioc, u8 port_id, u8 phy_num)
port->vphys_mask |= (1 << phy_num); port->vphys_mask |= (1 << phy_num);
vphy->phy_mask |= (1 << phy_num); vphy->phy_mask |= (1 << phy_num);
INIT_LIST_HEAD(&port->vphys_list);
list_add_tail(&vphy->list, &port->vphys_list); list_add_tail(&vphy->list, &port->vphys_list);
ioc_info(ioc, ioc_info(ioc,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment