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)
committerThomas Gleixner <tglx@linutronix.de>
Mon, 9 Nov 2020 13:30:30 +0000 (14:30 +0100)
commit1e106aa3509b86738769775969822ffc1ec21bf4
tree8e8a975a56017ec49c9a8190a5a4f5cd7ef64431
parentf8394f232b1eab649ce2df5c5f15b0e528c92091
futex: Don't enable IRQs unconditionally in put_pi_state()

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
kernel/futex.c