Skip to content

Commit 02bf0ef

Browse files
committed
Merge branch 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull locking fix from Thomas Gleixner: "rt_mutex_futex_unlock() grew a new irq-off call site, but the function assumes that its always called from irq enabled context. Use (un)lock_irqsafe() to handle the new call site correctly" * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: rtmutex: Make rt_mutex_futex_unlock() safe for irq-off callsites
2 parents abeb752 + 6b0ef92 commit 02bf0ef

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

kernel/locking/rtmutex.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1616,11 +1616,12 @@ bool __sched __rt_mutex_futex_unlock(struct rt_mutex *lock,
16161616
void __sched rt_mutex_futex_unlock(struct rt_mutex *lock)
16171617
{
16181618
DEFINE_WAKE_Q(wake_q);
1619+
unsigned long flags;
16191620
bool postunlock;
16201621

1621-
raw_spin_lock_irq(&lock->wait_lock);
1622+
raw_spin_lock_irqsave(&lock->wait_lock, flags);
16221623
postunlock = __rt_mutex_futex_unlock(lock, &wake_q);
1623-
raw_spin_unlock_irq(&lock->wait_lock);
1624+
raw_spin_unlock_irqrestore(&lock->wait_lock, flags);
16241625

16251626
if (postunlock)
16261627
rt_mutex_postunlock(&wake_q);

0 commit comments

Comments
 (0)