]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
futex: Don't enable IRQs unconditionally in put_pi_state()
authorDan Carpenter <dan.carpenter@oracle.com>
Fri, 6 Nov 2020 08:52:05 +0000 (11:52 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 18 Nov 2020 18:18:49 +0000 (19:18 +0100)
commit3f7277405fb3fe2853ce5d017ac7935ffca4ccfd
tree8a1084a243f99076dd109d555d343182cf2fedfd
parent41fc5ddd35bb60f9ae316175866dc21088384b6f
futex: Don't enable IRQs unconditionally in put_pi_state()

commit 1e106aa3509b86738769775969822ffc1ec21bf4 upstream.

The exit_pi_state_list() function calls put_pi_state() with IRQs disabled
and is not expecting that IRQs will be enabled inside the function.

Use the _irqsave() variant so that IRQs are restored to the original state
instead of being enabled unconditionally.

Fixes: 153fbd1226fb ("futex: Fix more put_pi_state() vs. exit_pi_state_list() races")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20201106085205.GA1159983@mwanda
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
kernel/futex.c