• Moore, Eric's avatar
    [SCSI] fusion - expander hotplug suport in mptsas module · e6b2d76a
    Moore, Eric authored
    This adds support for hot adding and removing
    expanders, and its associated attached devices.
    When there is a change in topology,
    the fusion firmware sends the
    MPI_EVENT_SAS_DISCOVERY event to the driver.
    The driver will read firmware config pages
    to determine what changes took place, and refresh
    drivers view of the world stored in ioc->sas_topology.
    
    Here is the details of the action the driver does:
    
    (1) Expander Added :  The mptsas_discovery_work
    workqueue is called.  Config pages read, and
    ioc->sas_topology is refreshed.  The sas_phy_add()
    is called for each phy of the expander.  The
    expanders attached devices are added via
    sas_rphy_add().  Added end devices are handled within
    the MPT_ADD_DEVICE logic in  mptsas_hotplug_work
    workqueue.
    
    (2) Expander Delete : The sas_rphy_delete() will be
    called for the top most compenent of the parent that the
    expander is attached to.  The sas_rphy_delete call
    will delete all the children phys, rphys, and end devices.
    This is handled from mptsas_discovery_work workqueue.
    Signed-off-by: default avatarEric Moore <Eric.Moore@lsil.com>
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
    e6b2d76a
mptbase.h 32.7 KB