[lvc-project] [PATCH 5.10.y] scsi: ufs: core: Improve SCSI abort handling

Fedor Pchelkin pchelkin at ispras.ru
Wed Apr 22 21:23:50 MSK 2026


On Tue, 21. Apr 16:19, Vasiliy Kovalev wrote:
> diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
> index c7bf0e6bc303..1b8072f47e7e 100644
> --- a/drivers/scsi/ufs/ufshcd.c
> +++ b/drivers/scsi/ufs/ufshcd.c
> @@ -6788,6 +6788,7 @@ static int ufshcd_abort(struct scsi_cmnd *cmd)
>  		__ufshcd_transfer_req_compl(hba, (1UL << tag));

Вызов __ufshcd_transfer_req_compl() выше зануляет lrbp->cmd.

>  		spin_unlock_irqrestore(host->host_lock, flags);
>  out:

А переход по метке out возможен только при

	/* If command is already aborted/completed, return SUCCESS */
	if (!(test_bit(tag, &hba->outstanding_reqs))) {
		dev_err(hba->dev,
			"%s: cmd at tag %d already completed, outstanding=0x%lx, doorbell=0x%x\n",
			__func__, tag, hba->outstanding_reqs, reg);
		goto out;
	}

т.е. когда lrbp->cmd уже был занулён ранее, если правильно понимаю.

Есть подозрение, что виновный коммит в патче указан неверно.

> +		lrbp->cmd = NULL;
>  		err = SUCCESS;
>  	} else {
>  		dev_err(hba->dev, "%s: failed with err %d\n", __func__, err);
> -- 
> 2.50.1



More information about the lvc-project mailing list