From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7BFFA357D1F for ; Wed, 3 Jun 2026 09:30:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=90.155.92.199 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780479048; cv=none; b=Xxovbp5SA2OJB1VEwnnp5q/m+1Iqn+c8J1bSmWhWSghmeX6FhZijQF0RKCps1hLdebCFvz9Qz9Uh2tMcvFPQvoix0C2ZlrcPKAWh+/BZvgmXj5K4d4nwu99xU/NKzy91DEIOJYfydSmffaKArArstfGY9j8EPvtmmKtcgrSV9WY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780479048; c=relaxed/simple; bh=A8SzakMkkgsA0P1K+5fwcYNiBsZZXmMj5Tu2ZeHhKNc=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=J8LWda19Rq8CacKzglDcyNSL7BUHpfjc5m3KSVAHXbkaPSLUrc+vYeUfAvP0P+TRicBa3oGfnubEUNmS8bx5Ttm7d8NGYbyioXChhpOXBK8T040SJuVvr/58swoI+s1wc6WH7T5qffjmMNHB0bMPsZrD0b31QwmM4/uVa8iZdSM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=infradead.org; spf=pass smtp.mailfrom=infradead.org; dkim=pass (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b=Je/G8QlV; arc=none smtp.client-ip=90.155.92.199 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=infradead.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=infradead.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="Je/G8QlV" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=4nPOSXAxykck6qGk7kmJsWW/PuoHsFGcrfiuls37zKs=; b=Je/G8QlV1qZv/Xq1dbTXK4sP/K ju29+VjgZJSPLlECFUhIIC+exjeBeH336SUhATf4/e21VozEbwck1dNd+e0yPMh61EEoy95+I3uJt lg/1qYp/DS5HphjZDfmnzh7Ku8O9CMBBA8BY1HPggGvc7QI2A1DS8TbAXO4mDW1/Cnj/UwkxQABy5 DNG8XWv6bxWSe/3YD8z2L9xrig57L9HYtKBy5GZbvUBCJJhi2I50ZksZzLyjrTv+0JtTXdJx/2oKN yDR7s0NB/VCGo5yp4puAokACtNx4k/bm69i7DTRWMXMsKuizK/6WO0ndrcVk2drZIz+CY5UrR5IB/ 4qtRdcxg==; Received: from 2001-1c00-8d85-4b00-266e-96ff-fe07-7dcc.cable.dynamic.v6.ziggo.nl ([2001:1c00:8d85:4b00:266e:96ff:fe07:7dcc] helo=noisy.programming.kicks-ass.net) by desiato.infradead.org with esmtpsa (Exim 4.99.2 #2 (Red Hat Linux)) id 1wUhvq-0000000Bid9-269t; Wed, 03 Jun 2026 09:30:39 +0000 Received: by noisy.programming.kicks-ass.net (Postfix, from userid 1000) id 01F4B300642; Wed, 03 Jun 2026 11:30:38 +0200 (CEST) Date: Wed, 3 Jun 2026 11:30:37 +0200 From: Peter Zijlstra To: Thomas Gleixner Cc: LKML , Mathieu Desnoyers , =?iso-8859-1?Q?Andr=E9?= Almeida , Sebastian Andrzej Siewior , Carlos O'Donell , Florian Weimer , Rich Felker , Torvald Riegel , Darren Hart , Ingo Molnar , Davidlohr Bueso , Arnd Bergmann , "Liam R . Howlett" , Uros Bizjak , Thomas =?iso-8859-1?Q?Wei=DFschuh?= , Mark Brown , Richard Weinberger Subject: Re: [patch V5 09/16] futex: Add support for unlocking robust futexes Message-ID: <20260603093037.GX3102924@noisy.programming.kicks-ass.net> References: <20260602084648.462672743@kernel.org> <20260602090535.670514505@kernel.org> <20260603082220.GR3102624@noisy.programming.kicks-ass.net> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20260603082220.GR3102624@noisy.programming.kicks-ass.net> On Wed, Jun 03, 2026 at 10:22:20AM +0200, Peter Zijlstra wrote: > Would you mind terribly if I did: 's/UNLOCK_ROBUST/ROBUST_UNLOCK/g' on > the whole series? --- a/include/uapi/linux/futex.h +++ b/include/uapi/linux/futex.h @@ -25,11 +25,11 @@ #define FUTEX_PRIVATE_FLAG 128 #define FUTEX_CLOCK_REALTIME 256 -#define FUTEX_UNLOCK_ROBUST 512 +#define FUTEX_ROBUST_UNLOCK 512 #define FUTEX_ROBUST_LIST32 1024 #define FUTEX_CMD_MASK ~(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME | \ - FUTEX_UNLOCK_ROBUST | FUTEX_ROBUST_LIST32) + FUTEX_ROBUST_UNLOCK | FUTEX_ROBUST_LIST32) #define FUTEX_WAIT_PRIVATE (FUTEX_WAIT | FUTEX_PRIVATE_FLAG) #define FUTEX_WAKE_PRIVATE (FUTEX_WAKE | FUTEX_PRIVATE_FLAG) @@ -49,23 +49,23 @@ * Operations to unlock a futex, clear the robust list pending op pointer and * wake waiters. */ -#define FUTEX_UNLOCK_PI_LIST64 (FUTEX_UNLOCK_PI | FUTEX_UNLOCK_ROBUST) +#define FUTEX_UNLOCK_PI_LIST64 (FUTEX_UNLOCK_PI | FUTEX_ROBUST_UNLOCK) #define FUTEX_UNLOCK_PI_LIST64_PRIVATE (FUTEX_UNLOCK_PI_LIST64 | FUTEX_PRIVATE_FLAG) -#define FUTEX_UNLOCK_PI_LIST32 (FUTEX_UNLOCK_PI | FUTEX_UNLOCK_ROBUST | \ +#define FUTEX_UNLOCK_PI_LIST32 (FUTEX_UNLOCK_PI | FUTEX_ROBUST_UNLOCK | \ FUTEX_ROBUST_LIST32) #define FUTEX_UNLOCK_PI_LIST32_PRIVATE (FUTEX_UNLOCK_PI_LIST32 | FUTEX_PRIVATE_FLAG) -#define FUTEX_UNLOCK_WAKE_LIST64 (FUTEX_WAKE | FUTEX_UNLOCK_ROBUST) +#define FUTEX_UNLOCK_WAKE_LIST64 (FUTEX_WAKE | FUTEX_ROBUST_UNLOCK) #define FUTEX_UNLOCK_WAKE_LIST64_PRIVATE (FUTEX_UNLOCK_WAKE_LIST64 | FUTEX_PRIVATE_FLAG) -#define FUTEX_UNLOCK_WAKE_LIST32 (FUTEX_WAKE | FUTEX_UNLOCK_ROBUST | \ +#define FUTEX_UNLOCK_WAKE_LIST32 (FUTEX_WAKE | FUTEX_ROBUST_UNLOCK | \ FUTEX_ROBUST_LIST32) #define FUTEX_UNLOCK_WAKE_LIST32_PRIVATE (FUTEX_UNLOCK_WAKE_LIST32 | FUTEX_PRIVATE_FLAG) -#define FUTEX_UNLOCK_BITSET_LIST64 (FUTEX_WAKE_BITSET | FUTEX_UNLOCK_ROBUST) +#define FUTEX_UNLOCK_BITSET_LIST64 (FUTEX_WAKE_BITSET | FUTEX_ROBUST_UNLOCK) #define FUTEX_UNLOCK_BITSET_LIST64_PRIVATE (FUTEX_UNLOCK_BITSET_LIST64 | FUTEX_PRIVATE_FLAG) -#define FUTEX_UNLOCK_BITSET_LIST32 (FUTEX_WAKE_BITSET | FUTEX_UNLOCK_ROBUST | \ +#define FUTEX_UNLOCK_BITSET_LIST32 (FUTEX_WAKE_BITSET | FUTEX_ROBUST_UNLOCK | \ FUTEX_ROBUST_LIST32) #define FUTEX_UNLOCK_BITSET_LIST32_PRIVATE (FUTEX_UNLOCK_BITSET_LIST32 | FUTEX_PRIVATE_FLAG) --- a/kernel/futex/futex.h +++ b/kernel/futex/futex.h @@ -40,7 +40,7 @@ #define FLAGS_NUMA 0x0080 #define FLAGS_STRICT 0x0100 #define FLAGS_MPOL 0x0200 -#define FLAGS_UNLOCK_ROBUST 0x0400 +#define FLAGS_ROBUST_UNLOCK 0x0400 #define FLAGS_ROBUST_LIST32 0x0800 /* FUTEX_ to FLAGS_ */ @@ -54,8 +54,8 @@ static inline unsigned int futex_to_flag if (op & FUTEX_CLOCK_REALTIME) flags |= FLAGS_CLOCKRT; - if (op & FUTEX_UNLOCK_ROBUST) - flags |= FLAGS_UNLOCK_ROBUST; + if (op & FUTEX_ROBUST_UNLOCK) + flags |= FLAGS_ROBUST_UNLOCK; if (op & FUTEX_ROBUST_LIST32) flags |= FLAGS_ROBUST_LIST32; --- a/kernel/futex/pi.c +++ b/kernel/futex/pi.c @@ -1305,7 +1305,7 @@ int futex_unlock_pi(u32 __user *uaddr, u { int ret = __futex_unlock_pi(uaddr, flags); - if (ret || !(flags & FLAGS_UNLOCK_ROBUST)) + if (ret || !(flags & FLAGS_ROBUST_UNLOCK)) return ret; if (!futex_robust_list_clear_pending(pop, flags)) --- a/kernel/futex/syscalls.c +++ b/kernel/futex/syscalls.c @@ -118,7 +118,7 @@ long do_futex(u32 __user *uaddr, int op, return -ENOSYS; } - if (flags & FLAGS_UNLOCK_ROBUST) { + if (flags & FLAGS_ROBUST_UNLOCK) { if (cmd != FUTEX_WAKE && cmd != FUTEX_WAKE_BITSET && cmd != FUTEX_UNLOCK_PI) --- a/kernel/futex/waitwake.c +++ b/kernel/futex/waitwake.c @@ -154,7 +154,7 @@ void futex_wake_mark(struct wake_q_head */ static bool futex_robust_unlock(u32 __user *uaddr, unsigned int flags, void __user *pop) { - if (!(flags & FLAGS_UNLOCK_ROBUST)) + if (!(flags & FLAGS_ROBUST_UNLOCK)) return true; /* First unlock the futex, which requires release semantics. */