From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9440CC04A94 for ; Mon, 31 Jul 2023 19:20:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E7FBD28009A; Mon, 31 Jul 2023 15:20:26 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E2F8928007A; Mon, 31 Jul 2023 15:20:26 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D1E5B28009A; Mon, 31 Jul 2023 15:20:26 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id C0C4728007A for ; Mon, 31 Jul 2023 15:20:26 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 8ABC11C9A19 for ; Mon, 31 Jul 2023 19:20:26 +0000 (UTC) X-FDA: 81072873252.30.AFEFBB2 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf13.hostedemail.com (Postfix) with ESMTP id 9B1462002E for ; Mon, 31 Jul 2023 19:20:23 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=Wz6DDGLE; spf=none (imf13.hostedemail.com: domain of peterz@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=peterz@infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1690831224; a=rsa-sha256; cv=none; b=7SuIRkXUua0HqJljgf+MiU+qvjegsdIIualHxKPQxljUnckqBEEqSZLuTXgMinD8iSLd6m Kac2ODwhlmEN7Mlku0MxhVXz0Cb+YzjFZX69f8mkpuQvCnkMwyBWwF1eP90DJUazeiAVeP LcstDMdZuL8X9Pms25fI2wGwNmCdtaU= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=Wz6DDGLE; spf=none (imf13.hostedemail.com: domain of peterz@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=peterz@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1690831224; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=7kEonDGMduTbFsCil+eszqrNrb5nrnY+6n0LGU5HhHA=; b=TowyYvv9zr5pUzf1ri84fZ1sVhNpQXO+Hmj+W/bzuo8XJFBId0v2u+qpaBXZw1L8YXTSFm Q7vCtZQr1l6Gax/xCve3x0Bw4zhp9EA//ihCbCUnj04j7TuV4MEIMHgNbqPDMAvq/jtKm1 TTQOXiRgH2jWfto9K4UN/78/llVHMtA= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; 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=7kEonDGMduTbFsCil+eszqrNrb5nrnY+6n0LGU5HhHA=; b=Wz6DDGLEoUvHSzKosfdPLNuAx6 pXzK5fDBMLzFxdrzFewsUb1Lr3/dW14cR14Wa3XBkxzL+dYZGrYJ7gWZhgWVr7Q5I5Tl6WWpv/w+7 45Zrya0kQ+Bi7L5Pe2IpLcc6aUA+qJYMpb+nBBo/j+Sj2OS9zTqo3Jo2zk4AdNTiIBj//QH61/SvS 7sNEHNYkvPMNtO67KQNvk54Nq9kcR140qlDdm1ebt67M/ZqM6voGTbaa61kZ9iE/MCYWR61O5smiT S0kZfVowlGQpc9n4WuK3UsLH7XkISpISXB5SUfVdmKjJmcKJRrguPeCEYo74GlgveOrKsdlTeUixB DQclJDog==; Received: from j130084.upc-j.chello.nl ([24.132.130.84] helo=noisy.programming.kicks-ass.net) by casper.infradead.org with esmtpsa (Exim 4.94.2 #2 (Red Hat Linux)) id 1qQYRB-003LT8-T5; Mon, 31 Jul 2023 19:20:14 +0000 Received: from hirez.programming.kicks-ass.net (hirez.programming.kicks-ass.net [192.168.1.225]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by noisy.programming.kicks-ass.net (Postfix) with ESMTPS id 3951A3002CE; Mon, 31 Jul 2023 21:20:13 +0200 (CEST) Received: by hirez.programming.kicks-ass.net (Postfix, from userid 1000) id 07A8E203C783E; Mon, 31 Jul 2023 21:20:13 +0200 (CEST) Date: Mon, 31 Jul 2023 21:20:12 +0200 From: Peter Zijlstra To: Thomas Gleixner Cc: axboe@kernel.dk, linux-kernel@vger.kernel.org, mingo@redhat.com, dvhart@infradead.org, dave@stgolabs.net, andrealmeid@igalia.com, Andrew Morton , urezki@gmail.com, hch@infradead.org, lstoakes@gmail.com, Arnd Bergmann , linux-api@vger.kernel.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, malteskarupke@web.de Subject: Re: [PATCH v1 02/14] futex: Extend the FUTEX2 flags Message-ID: <20230731192012.GA11704@hirez.programming.kicks-ass.net> References: <20230721102237.268073801@infradead.org> <20230721105743.819362688@infradead.org> <87edkonjrk.ffs@tglx> <87mszcm0zw.ffs@tglx> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <87mszcm0zw.ffs@tglx> X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 9B1462002E X-Stat-Signature: 7oo7ynyz9ism7yonghtxfgee9n8ouudc X-Rspam-User: X-HE-Tag: 1690831223-807454 X-HE-Meta: U2FsdGVkX18uT9glB456t+WHhmfu0YP1LoaLJ2s2fzlQN3hqmUS8Qlq5CHDeopQBjVqEam1+tf96/eKM3Fgc7oIUeFBWEVzNID7qe2LRzzhfWTOOknTqjVxgcJHhoFOTtRS1wnTmQs7imZRcvsjLHtcTm1nGfjiPkV9B4wSBKB41tVHp0yoFDelIjShY4HIxiLJU6KVM9pjlN+7JIcmhkPsFCj8eGf8fr7QYSAKm/w0QggMNbcvTcnE/HgjNNMPMevh44gIhr4zNG06HZKSHN8jWGxj8Kswgs3bPwrSK6/BrTpF3QKOdmvxuMm+ukcvXu+Kz+Hrf2wOev3qpDmcginN1oINOZgh1gmPtrldPCwJYeZyYthZbcwM+5BQcHvSM00Bzie34JGEkZmo7jKquKa3xuFXQTqdF5fXZnCSTzKfgv88r5rGjr3uFkv1JMBz7PYq+6eitFRctkQAQSNhYErikEIONFbyv3M1rAtXopovt4LKM4JvxFS9sUyikwn8ZWuB50PcY/Tdq1iCCq4LSJmKq82nTYM5k2NYQxNsFZRa31KqkWInJEH5/NY5az+zGpTw5JF+HIw7S9jkU2nIOm1NqyNn0cgaP+dJqLFPYnM+dtoAlw4hO+cQXXcaCD42ddg576I00XA+VxutUf4Dn8KKsn4ylHF2ZAb7hxMYjGI2xwynmo0XYwd+xYVP+uWikHEJTIWveQRMVvKipPdlTxJwSiXFRRgdNYOBZURfhbQgq1UrmAZ+UXYAJy6iLtqbjvzIO60OThiJS942yKoXCwijeDxXVaQO/dIqwMqNhnKKeVyovm2fP8JbpwzmZyFgJXkJisrmlaDwubfAfyqozm/Umejxpzcedqoh2azg8DKFMb3C7Nlx/q+ZnKH8WQKhcxJxuDQ6dh1MvSS/Bs8X4CbgREIhOa4v5z/QzokhtSfEeU+gq1leeGpjTkX177FoXgeNAySeTxpCiqHHIAAx UvQpTNdb b6KF0+kuKd2rIMgO32eUGX2pNsNzXEQTvRtDKrOXjmsv9LX8NPIva6shu20J3leOfnUEr9ZPvBFyHQhJbQ/IIKq1lLjBbKrCkhbauYuhnDy8S6rU0FLPA0hPHWUa3wqFkIWE54ff785T2Qqs= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Mon, Jul 31, 2023 at 07:42:11PM +0200, Thomas Gleixner wrote: > Aargh. This is really nasty to make FUTEX2_64 0x3 and abuse it to test > the flags for validity. Intuitive and obvious is something else. Like so then? --- a/include/uapi/linux/futex.h +++ b/include/uapi/linux/futex.h @@ -57,6 +57,8 @@ /* 0x40 */ #define FUTEX2_PRIVATE FUTEX_PRIVATE_FLAG +#define FUTEX2_SIZE_MASK 0x03 + /* do not use */ #define FUTEX_32 FUTEX2_32 /* historical accident :-( */ --- a/kernel/futex/syscalls.c +++ b/kernel/futex/syscalls.c @@ -183,7 +183,7 @@ SYSCALL_DEFINE6(futex, u32 __user *, uad return do_futex(uaddr, op, val, tp, uaddr2, (unsigned long)utime, val3); } -#define FUTEX2_MASK (FUTEX2_64 | FUTEX2_PRIVATE) +#define FUTEX2_MASK (FUTEX2_SIZE_MASK | FUTEX2_PRIVATE) /** * futex_parse_waitv - Parse a waitv array from userspace @@ -208,11 +208,11 @@ static int futex_parse_waitv(struct fute return -EINVAL; if (!IS_ENABLED(CONFIG_64BIT) || in_compat_syscall()) { - if ((aux.flags & FUTEX2_64) == FUTEX2_64) + if ((aux.flags & FUTEX2_SIZE_MASK) == FUTEX2_64) return -EINVAL; } - if ((aux.flags & FUTEX2_64) != FUTEX2_32) + if ((aux.flags & FUTEX2_SIZE_MASK) != FUTEX2_32) return -EINVAL; futexv[i].w.flags = aux.flags;