[PATCH v9 3/3] ufs: core: add a quirk for MediaTek SDB mode aborted

Peter Wang (王信友) peter.wang at mediatek.com
Wed Sep 25 20:42:32 PDT 2024


On Wed, 2024-09-25 at 09:56 -0700, Bart Van Assche wrote:
> 
> 
> ufshcd_transfer_rsp_status() only has one caller, namely 
> ufshcd_compl_one_cqe(). The previous patch makes sure that that 
> ufshcd_compl_one_cqe() is not called if a SCSI command is aborted. So
> why does this patch modify how OCS_ABORTED is processed? Is this
> patch
> necessary or can it perhaps be dropped?
> 
> Thanks,
> 
> Bart.

Hi Bart,

Because in Legacy SDB mode, the error handler still has the 
chance to call ufshcd_compl_one_cqe(); 
The call flow is as follows:

ufshcd_err_handler()
  ufshcd_abort_all()
    ufshcd_abort_one()
      ufshcd_try_to_abort_task()	// mediatek controller fill
OCS: ABORTED
    ufshcd_complete_requests()
      ufshcd_transfer_req_compl()
        ufshcd_poll()
          get outstanding_lock
          clear outstanding_reqs tag
          release outstanding_lock	
          __ufshcd_transfer_req_compl()
            ufshcd_compl_one_cqe()
              cmd->result = DID_REQUEUE // mediatek need quirk change
DID_ABORT to DID_REQUEUE
              ufshcd_release_scsi_cmd()
              scsi_done()

Thanks.
Peter


More information about the Linux-mediatek mailing list