> > > > @@ -2656,7 +2656,12 @@ static int ufshcd_queuecommand(struct > Scsi_Host > > > *host, struct scsi_cmnd *cmd) > > > > > > lrbp->req_abort_skip = false; > > > > > > - ufshpb_prep(hba, lrbp); > > > + err = ufshpb_prep(hba, lrbp); > > > + if (err == -EAGAIN) { > > > + lrbp->cmd = NULL; > > > + ufshcd_release(hba); > > > + goto out; > > > + } > > Did I miss-read it, or are you bailing out of wb failed e.g. because no tag is > available? > > Why not continue with read10? > > We try to sending HPB read several times within the requeue_timeout_ms. > Because it strategy has more benefit for overall performance in this > situation that many requests are queueing. This extra logic, IMO, should be optional. Default none. And yes, in this case requeue_timeout should be a parameter for each OEM to scale.