• Matthew R. Ochs's avatar
    scsi: cxlflash: Fix to avoid EEH and host reset collisions · 1d3324c3
    Matthew R. Ochs authored
    The EEH reset handler is ignorant to the current state of the driver
    when processing a frozen event and initiating a device reset. This can
    be an issue if an EEH event occurs while a user or stack initiated reset
    is executing. More specifically, if an EEH occurs while the SCSI host
    reset handler is active, the reset initiated by the EEH thread will
    likely collide with the host reset thread. This can leave the device in
    an inconsistent state, or worse, cause a system crash.
    
    As a remedy, the EEH handler is updated to evaluate the device state and
    take appropriate action (proceed, wait, or disconnect host). The host
    reset handler is also updated to handle situations where an EEH occurred
    during a host reset. In such situations, the host reset handler will
    delay reporting back a success to give the EEH reset an opportunity to
    complete.
    Signed-off-by: default avatarMatthew R. Ochs <mrochs@linux.vnet.ibm.com>
    Acked-by: default avatarUma Krishnan <ukrishn@linux.vnet.ibm.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    1d3324c3
main.c 73.4 KB