]> 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:20:30 +0000 (19:20 +0100)
commit2192d905df0d540f6f3240046bcb06c53bcf5016
treeac29bbce10ddda21c17888e649a9d25904aae8df
parent761fb6829238d98117601b3fab40f777fea2455d
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