Re: [PATCH v4 5/6] scsi: ufs: core: Fix double release in ufshcd_abort()
From: Peter Wang
Date: Wed Oct 21 2026 - 09:18:44 EST
On Wed, 2026-10-21 at 12:06 +0800, Stanley Jhu wrote:
> diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
> index ff5977f7da68..4f9b34c1d112 100644
> --- a/drivers/ufs/core/ufshcd.c
> +++ b/drivers/ufs/core/ufshcd.c
> @@ -8185,7 +8185,11 @@ static int ufshcd_abort(struct scsi_cmnd *cmd)
> dev_err(hba->dev,
> "%s: cmd was completed, but without a notifying
> intr, tag = %d",
> __func__, tag);
> - __ufshcd_transfer_req_compl(hba, 1UL << tag);
> + if (ufshcd_clear_outstanding_reqs(hba, BIT(tag))) {
> + if (ufshcd_is_scsi_cmd(cmd))
> + ufshcd_release_scsi_cmd(hba, cmd);
> + err = SUCCESS;
> + }
>
Hi Stanley,
If ufshcd_clear_outstanding_reqs(hba, BIT(tag)) returns 0,
should we also set err = SUCCESS? Since the tag is already done
— either by the ISR or by ufshcd_abort — shouldn't both cases
be treated the same?
Thanks
Peter