Messages in this thread | | | From | Nicolas Saenz Julienne <> | Subject | Re: [PATCH] eventfd: protect eventfd_wake_count with a local_lock | Date | Fri, 23 Jul 2021 16:53:04 +0200 |
| |
On Mon, 19 Jul 2021 09:54:52 +0200, Daniel Bristot de Oliveira wrote: > eventfd_signal assumes that spin_lock_irqsave/spin_unlock_irqrestore is > non-preemptable and therefore increments and decrements the percpu > variable inside the critical section. > > This obviously does not fly with PREEMPT_RT. If eventfd_signal is > preempted and an unrelated thread calls eventfd_signal, the result is > a spurious WARN. To avoid this, protect the percpu variable with a > local_lock. > > Reported-by: Daniel Bristot de Oliveira <bristot@kernel.org> > Fixes: b5e683d5cab8 ("eventfd: track eventfd_signal() recursion depth") > Cc: He Zhe <zhe.he@windriver.com> > Cc: Jens Axboe <axboe@kernel.dk> > Cc: Alexander Viro <viro@zeniv.linux.org.uk> > Cc: Thomas Gleixner <tglx@linutronix.de> > Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de> > Cc: stable@vger.kernel.org > Cc: linux-fsdevel@vger.kernel.org > Cc: linux-kernel@vger.kernel.org > Co-developed-by: Paolo Bonzini <pbonzini@redhat.com> > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> > Signed-off-by: Daniel Bristot de Oliveira <bristot@kernel.org> > ---
Tested-by: Nicolas Saenz Julienne <nsaenzju@redhat.com>
Thanks!
-- Nicolás Sáenz
| |