Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 85e65050 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "mmc: core: Fix recursive locking issue with queue_lock"

parents ad02b8a6 f105cda1
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -108,7 +108,7 @@ static enum blk_eh_timer_return mmc_cqe_timed_out(struct request *req)
	case MMC_ISSUE_DCMD:
		if (host->cqe_ops->cqe_timeout(host, mrq, &recovery_needed)) {
			if (recovery_needed)
				__mmc_cqe_recovery_notifier(mq);
				mmc_cqe_recovery_notifier(mrq);
			return BLK_EH_RESET_TIMER;
		}
		/* No timeout (XXX: huh? comment doesn't make much sense) */
@@ -130,12 +130,13 @@ static enum blk_eh_timer_return mmc_mq_timed_out(struct request *req,

	spin_lock_irqsave(q->queue_lock, flags);

	if (mq->recovery_needed || !mq->use_cqe)
	if (mq->recovery_needed || !mq->use_cqe) {
		ret = BLK_EH_RESET_TIMER;
	else
		ret = mmc_cqe_timed_out(req);

		spin_unlock_irqrestore(q->queue_lock, flags);
	} else {
		spin_unlock_irqrestore(q->queue_lock, flags);
		ret = mmc_cqe_timed_out(req);
	}

	return ret;
}