Commit a51a327f authored by Thomas Gleixner's avatar Thomas Gleixner Committed by Ingo Molnar
Browse files

locking/rtmutex: Clean up signal handling in __rt_mutex_slowlock()



The signal handling in __rt_mutex_slowlock() is open coded.

Use signal_pending_state() instead.

Aside of the cleanup this also prepares for the RT lock substituions which
require support for TASK_KILLABLE.

Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lore.kernel.org/r/20210326153944.533811987@linutronix.de
parent c2c360ed
Loading
Loading
Loading
Loading
+7 −12
Original line number Diff line number Diff line
@@ -1146,17 +1146,12 @@ static int __sched __rt_mutex_slowlock(struct rt_mutex *lock, int state,
		if (try_to_take_rt_mutex(lock, current, waiter))
			break;

		/*
		 * TASK_INTERRUPTIBLE checks for signals and
		 * timeout. Ignored otherwise.
		 */
		if (likely(state == TASK_INTERRUPTIBLE)) {
			/* Signal pending? */
			if (signal_pending(current))
				ret = -EINTR;
			if (timeout && !timeout->task)
		if (timeout && !timeout->task) {
			ret = -ETIMEDOUT;
			if (ret)
			break;
		}
		if (signal_pending_state(state, current)) {
			ret = -EINTR;
			break;
		}