Unverified Commit 54f2b65f authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!12012 rtmutex: Drop rt_mutex::wait_lock before scheduling

parents e7454d7c 14e96eab
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -1241,6 +1241,7 @@ __rt_mutex_slowlock(struct rt_mutex *lock, int state,
}

static void rt_mutex_handle_deadlock(int res, int detect_deadlock,
				     struct rt_mutex *lock,
				     struct rt_mutex_waiter *w)
{
	/*
@@ -1250,6 +1251,7 @@ static void rt_mutex_handle_deadlock(int res, int detect_deadlock,
	if (res != -EDEADLOCK || detect_deadlock)
		return;

	raw_spin_unlock_irq(&lock->wait_lock);
	/*
	 * Yell lowdly and stop the task right here.
	 */
@@ -1305,7 +1307,7 @@ rt_mutex_slowlock(struct rt_mutex *lock, int state,
	if (unlikely(ret)) {
		__set_current_state(TASK_RUNNING);
		remove_waiter(lock, &waiter);
		rt_mutex_handle_deadlock(ret, chwalk, &waiter);
		rt_mutex_handle_deadlock(ret, chwalk, lock, &waiter);
	}

	/*