FROMGIT: scsi: ufs: Remove a redundant command completion logic in error handler
ufshcd_host_reset_and_restore() anyways completes all pending requests before starts re-probing, so there is no need to complete the command on the highest bit in tr_doorbell in advance. Link: https://lore.kernel.org/r/1621845419-14194-2-git-send-email-cang@codeaurora.org Reviewed-by: Bart Van Assche <bvanassche@acm.org> Reviewed-by: Stanley Chu <stanley.chu@mediatek.com> Reviewed-by: Bean Huo <beanhuo@micron.com> Signed-off-by: Can Guo <cang@codeaurora.org> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> Bug: 190637035 (cherry picked from commit 1cca0c3fdc91db15bbcd58c4dc49b7b97d0891fe git://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git 5.14/scsi-staging) Change-Id: Iabcf44f49119de956016e25c2be2f58324fac240 Signed-off-by: Can Guo <cang@codeaurora.org>
This commit is contained in:
@@ -6084,19 +6084,6 @@ lock_skip_pending_xfer_clear:
|
||||
do_reset:
|
||||
/* Fatal errors need reset */
|
||||
if (needs_reset) {
|
||||
unsigned long max_doorbells = (1UL << hba->nutrs) - 1;
|
||||
|
||||
/*
|
||||
* ufshcd_reset_and_restore() does the link reinitialization
|
||||
* which will need atleast one empty doorbell slot to send the
|
||||
* device management commands (NOP and query commands).
|
||||
* If there is no slot empty at this moment then free up last
|
||||
* slot forcefully.
|
||||
*/
|
||||
if (hba->outstanding_reqs == max_doorbells)
|
||||
__ufshcd_transfer_req_compl(hba,
|
||||
(1UL << (hba->nutrs - 1)));
|
||||
|
||||
hba->force_reset = false;
|
||||
spin_unlock_irqrestore(hba->host->host_lock, flags);
|
||||
err = ufshcd_reset_and_restore(hba);
|
||||
|
Reference in New Issue
Block a user