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

From: Peter Wang

Date: Wed Oct 21 2026 - 09:14:41 EST


On Wed, 2026-10-21 at 12:06 +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
> Signed-off-by: Stanley Jhu <stanleyjhu@xxxxxxxxxx>
> ---

Reviewed-by: Peter Wang <peter.wang@xxxxxxxxxxxx>