• Sujit Reddy Thumma's avatar
    scsi: ufs: Improve UFS fatal error handling · e8e7f271
    Sujit Reddy Thumma authored
    Error handling in UFS driver is broken and resets the host controller
    for fatal errors without re-initialization. Correct the fatal error
    handling sequence according to UFS Host Controller Interface (HCI)
    v1.1 specification.
    
    o Processed requests which are completed w/wo error are reported to
      SCSI layer and any pending commands that are not started are aborted
      in the controller and re-queued into scsi mid-layer queue.
    
    o Upon determining fatal error condition the host controller may hang
      forever until a reset is applied. Block SCSI layer for sending new
      requests and apply reset in a separate error handling work.
    
    o SCSI is informed about the expected Unit-Attention exception from the
      device for the immediate command after a reset so that the SCSI layer
      take necessary steps to establish communication with the device.
    Signed-off-by: default avatarSujit Reddy Thumma <sthumma@codeaurora.org>
    Reviewed-by: default avatarYaniv Gardi <ygardi@codeaurora.org>
    Tested-by: default avatarDolev Raviv <draviv@codeaurora.org>
    Acked-by: default avatarVinayak Holikatti <vinholikatti@gmail.com>
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    e8e7f271
ufshcd.c 83.8 KB