Re: [PATCH v5 4/6] scsi: ufs: core: Fix double release in ufshcd_eh_timed_out()

From: Bean Huo

Date: Thu Oct 22 2026 - 14:04:56 EST


On Thu, 2026-10-22 at 11:44 +0800, Stanley Jhu wrote:
> In SDB mode, a command that times out during a power management
> operation can be released twice:
>
> 1. The command times out while its normal completion is running.
> 2. The completion path clears BIT(rq->tag) in hba->outstanding_reqs and
>    releases the command. It has not called scsi_done() yet, so
>    SCMD_STATE_COMPLETE is still clear.
> 3. ufshcd_eh_timed_out() recovers the link, sees SCMD_STATE_COMPLETE
>    clear, clears BIT(rq->tag) in hba->outstanding_reqs without checking
>    whether it was still set, and releases the same command a second
>    time.
>
> Return SCSI_EH_DONE when ufshcd_clear_outstanding_reqs() returns 0, as
> another path has already claimed the command.
>
> Fixes: 01d5e237b339 ("scsi: ufs: core: Handle PM commands timeout before SCSI
> EH")
> Cc: stable@xxxxxxxxxxxxxxx
> Reviewed-by: Peter Wang <peter.wang@xxxxxxxxxxxx>
> Signed-off-by: Stanley Jhu <stanleyjhu@xxxxxxxxxx>

Reviewed-by: Bean Huo <beanhuo@xxxxxxxxxx>