• Sreekanth Reddy's avatar
    scsi: mpt3sas: Handling HBA vSES device · ccc59923
    Sreekanth Reddy authored
    Each direct attached device will have a unique Port ID, but with an
    exception. HBA vSES may use the same Port ID of another direct attached
    device Port's ID. As a result, special handling is needed for vSES.
    
    Create a virtual_phy object when a new HBA vSES device is detected and add
    this virtual_phy object to vphys_list of port ID's hba_port object.  When
    the HBA vSES device is removed then remove the corresponding virtual_phy
    object from its parent's hba_port's vphy_list and free this virtual_vphy
    object.
    
    In hba_port object add vphy_mask field to hold the list of HBA phy bits
    which are assigned to vSES devices. Also add vphy_list list to hold list of
    virtual_phy objects which holds the same portID of current hba_port's
    portID.
    
    Also, add a hba_vphy field in _sas_phy object to determine whether this
    _sas_phy object belongs to vSES device or not.
    
     - Allocate a virtual_phy object whenever a virtual phy is detected while
       processing the SASIOUnitPage0's phy data. And this allocated virtual_phy
       object to corresponding PortID's hba_port's vphy_list.
    
     - When a vSES device is added to the SML then initialize the corresponding
       virtual_phy objects's sas_address field with vSES device's SAS Address.
    
     - Free this virtual_phy object during driver unload time and when this
       vSES device is removed.
    
    Link: https://lore.kernel.org/r/20201027130847.9962-11-sreekanth.reddy@broadcom.comSigned-off-by: default avatarSreekanth Reddy <sreekanth.reddy@broadcom.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    ccc59923
mpt3sas_base.h 62 KB