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>