[PATCH v3 5/5] arm64: vdso32: Implement __vdso_futex_robust_try_unlock()

Mathieu Desnoyers mathieu.desnoyers at efficios.com
Fri May 29 12:15:40 PDT 2026


> +__u32 __vdso_futex_robust_list32_try_unlock(__u32 *lock, __u32 tid, __u32 *pop)
> +{
> +	register __u32 *pop_reg asm("r2") = pop;
> +	__u32 val, result, zero = 0;
> +
> +	asm volatile (
> +		GLOBLS(32)
> +		"retry:						\n"
> +		"	ldrex %[val], %[lock]			\n"
> +		"	cmp %[tid], %[val]			\n"
> +		"	bne " LABEL(end, 32)"			\n"
> +		"	strex %[result], %[zero], %[lock]	\n"

Here too the address range between strex (success) and start is not
covered. Failure to fixup if the process is killed here.

Thanks,

Mathieu


-- 
Mathieu Desnoyers
EfficiOS Inc.
https://www.efficios.com



More information about the linux-arm-kernel mailing list