]> 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:22:26 +0000 (19:22 +0100)
commit07b4f1246b72343569e28b67efd47569fe62ec56
tree8f02aa326d863dbf9f36b16b740a53af586d9c79
parent67c433c290285db464f45c4159004c87d3e28a0e
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