[PATCH v4 0/5] arm64: vdso: Implement __vdso_futex_robust_try_unlock()

Thomas Gleixner tglx at kernel.org
Sun Jul 5 13:23:55 PDT 2026


On Sun, Jul 05 2026 at 14:56, André Almeida wrote:
> As explained in the Testing section above, we developed a test that puts
> breakpoints in the code to test if a user code being interrupted really clears
> the op_pending pointer. This test wasn't initially working because of this check
> at futex_fixup_robust_unlock():
>
>         /*
>          * Avoid dereferencing current->mm if not returning from interrupt.
>          * current->rseq.event is going to be used subsequently, so bringing the
>          * cache line in is not a big deal.
>          */
>         if (!current->rseq.event.user_irq)
> 		return;
>
> rseq.event.user_irq was always false during my tests, and it prevents the fixup
> to happen. I figured out that arm64_syscall_enter_from_user_mode() was the
> issue because it doesn't set user_irq to true when the task comes from a
> syscall.

I have no idea what you are babbling about.

A syscall enter never sets user_irq to true. It's only set to true when
an interrupt/exception entry comes from user space, i.e. via

    irqentry_enter_from_user_mode()
        rseq_note_user_irq_entry()

No?

Thanks,

        tglx




More information about the linux-arm-kernel mailing list