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 BFDB5C3DA61 for ; Wed, 24 Jul 2024 19:49:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5DA076B008A; Wed, 24 Jul 2024 15:49:15 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 58ABA6B008C; Wed, 24 Jul 2024 15:49:15 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4523B6B0092; Wed, 24 Jul 2024 15:49:15 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 2657A6B008A for ; Wed, 24 Jul 2024 15:49:15 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 85BDF40B58 for ; Wed, 24 Jul 2024 19:49:14 +0000 (UTC) X-FDA: 82375685028.21.EE1CE1B Received: from mail-ed1-f42.google.com (mail-ed1-f42.google.com [209.85.208.42]) by imf22.hostedemail.com (Postfix) with ESMTP id 66A7FC0028 for ; Wed, 24 Jul 2024 19:49:11 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=linuxfoundation.org header.s=google header.b=Br+NnROW; dmarc=pass (policy=none) header.from=linuxfoundation.org; spf=pass (imf22.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.208.42 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1721850516; a=rsa-sha256; cv=none; b=L9e9hS9YyRdmd64mTIm0JVgvjk38FMuy6GJNeNkbNzKxBj2mwJ3aQ+i65jp6XyUiA9GQ1z iVs+3dcpDKox/Hb/vYpKtIuFYcveopzBaBzpsi1Z0vpqzzsxWkIaoQcpsk6L1RgV5RVzBI Qj7DuAWXdrWv+CmjnJxajxFnjxBvDo8= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=linuxfoundation.org header.s=google header.b=Br+NnROW; dmarc=pass (policy=none) header.from=linuxfoundation.org; spf=pass (imf22.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.208.42 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1721850516; 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=ghePSl2d8bQvN8cPdHzzrvTunMGaXuooZOZcFeoWIOs=; b=2CrFiF7KjayYBcZTG6ydY2YWrnZzu/ZABVDO/bHaTCsF2Yyo/YPQ4+0YmuR37lv3ycbl+O ND9edRZG+gxz7ZoyDE+eyQZM5ztVaDHAWzKjyPSVTTQ7O9+y+SCTCaBVWT7CibWyJ7wnam Pzj+nPSAsGRYjjDdSXQA/w5JRuj/FAE= Received: by mail-ed1-f42.google.com with SMTP id 4fb4d7f45d1cf-585e774fd3dso244641a12.0 for ; Wed, 24 Jul 2024 12:49:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxfoundation.org; s=google; t=1721850549; x=1722455349; darn=kvack.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=ghePSl2d8bQvN8cPdHzzrvTunMGaXuooZOZcFeoWIOs=; b=Br+NnROWhmw4v+U7LSwVSTFCOutJ065nLy+IGNeiMjA7TeFsyRNtakCIbqOynKF2eX y0ojSx8jOOG0eqkkVVzrNuEpd0XE172RpPdWmG3gc+wEKsDEzJSG5YwxHlcCERhVXm64 AmzaBNMQavuC8HFnnzM9eTk1Uukwvkh0Po/ZY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721850549; x=1722455349; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=ghePSl2d8bQvN8cPdHzzrvTunMGaXuooZOZcFeoWIOs=; b=WF0LkPM8MjHjnBYQ9n5PBk9eZ/htYWziiRdeloooc6fLUKIzSSmi85OYhQHEsctlQx KeH956wUTdnpZ0/CKlAueRGtwnP+m3fog/ljw0MSgvrhDAT4miontUT9/3EDlRgCWEmj JgPAWXGPjSuteoETNcD1tc6YMeFdRIa81kRD7HFLa7k1uWHJpJ2gvYjexjpGMllDW+F9 2uqzycLZCrFgGy89gSodQgg67UrlIX3jLmJGRQJcsUd/H7iwc+yM3ptlYujZi49U4lEM zQ/Z1fF7C/JEAecNR4oVBElVCdIEdLxjc3aYCXvEi5RWEqoeU7IOI3DPqVowtXaLwSEf gHrw== X-Forwarded-Encrypted: i=1; AJvYcCX9mYVatzCE4viqzhFuUjMf7TJ33IYJkhBIKs+sVy1OCx5P3wbC91J/G9fzuy0PC/86NcD88yvSymuRwduimfLaoyg= X-Gm-Message-State: AOJu0YzySYFrFyyaMOjJ1aLokl+SK0MWqrbJCm+quYyWozAU+nqcCirv vJc+mEoO5EYcwLv7ivbyXRZIC/8D2Wt5fuzq5ONyEYZ9onw0qbaeHhFjr2UOf4rZxtI3P4h6hGp SQY8= X-Google-Smtp-Source: AGHT+IE9+3E560QcPuvVWqTYbcVICohc6Qip0PP2A0USfbFeEpAE4RvpgzTYZb4AiMmM9Dz0mxObYg== X-Received: by 2002:a50:8adc:0:b0:5a1:bda1:3e23 with SMTP id 4fb4d7f45d1cf-5ac2a6c1fbbmr269506a12.14.1721850549287; Wed, 24 Jul 2024 12:49:09 -0700 (PDT) Received: from mail-ed1-f44.google.com (mail-ed1-f44.google.com. [209.85.208.44]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5a30c7d32c6sm9150497a12.90.2024.07.24.12.49.08 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 24 Jul 2024 12:49:08 -0700 (PDT) Received: by mail-ed1-f44.google.com with SMTP id 4fb4d7f45d1cf-5a1fcb611d9so235404a12.1 for ; Wed, 24 Jul 2024 12:49:08 -0700 (PDT) X-Forwarded-Encrypted: i=1; AJvYcCWuqfi1dMhBvGZ+gjBpcjCrF1D71kiZg//Ql54JwHvnQHOrKPMGVFKdUfrZrIqWNrFsthOYBBjCEhqAC1mBk2/LPTg= X-Received: by 2002:a05:6402:5111:b0:5a0:c69e:56a with SMTP id 4fb4d7f45d1cf-5ac2a0efa1amr308365a12.3.1721850548399; Wed, 24 Jul 2024 12:49:08 -0700 (PDT) MIME-Version: 1.0 References: <23bdb6fc8d884ceebeb6e8b8653b8cfe@AcuMS.aculab.com> <9751d18defea406fa698630637d8e7db@AcuMS.aculab.com> In-Reply-To: <9751d18defea406fa698630637d8e7db@AcuMS.aculab.com> From: Linus Torvalds Date: Wed, 24 Jul 2024 12:48:52 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 3/7] compiler.h: Add __if_constexpr(expr, if_const, if_not_const) To: David Laight Cc: "linux-kernel@vger.kernel.org" , "Matthew Wilcox (Oracle)" , Christoph Hellwig , Andrew Morton , Andy Shevchenko , Dan Carpenter , Arnd Bergmann , "Jason@zx2c4.com" , "pedro.falcato@gmail.com" , Mateusz Guzik , "linux-mm@kvack.org" Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 66A7FC0028 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: 3wsdras198yiaq9qr9oes9ow7fttqn8e X-HE-Tag: 1721850551-130434 X-HE-Meta: U2FsdGVkX18tFiw7KONqLPZGYbjD1MMyaK+nHe30klul4LbMLk2x+hyyynru5b+/sLBzgeeWxywlOPxUYFYafF1uger5CpQ+mT+septm19yMYDjeQDeeg4E3j+lmEdpZRh+ug2Qtqf4420R8DzN5VhyomN4fV3u6nMpF36F2dO/P6JM31as5d+C1V8ja4nb8gUO7Zbu9V3S8Q9FRBr0bjd9GovYkJ8MKgI6eZ24KRu3LC+mFMy+hmg7pMphR/gUhe+VFZOleVI20PD/zMOblBr1iDS8aS4gwf5xdV1O9GDRFX5tewQQBEoCa7LeMMvxJ/lu8oBN1KYJdmkJk8oVzvsZ6gN82s96CD3XT58E+4bOl55TzPfEVonldBFhYw/Hspjak6wdYL5MGOj9KGick3Ql1XjqvkWGvgRb1MAEJHDc3JUUsenXdfzJq0AF/ffrnO2MSxVyamuthnTsvCVuezv1jgbWUdGWIfQwknTZ4sru25qxD2MLh5o+InYPTGb9du0eVH1Lh7rZJHEzYIvuYPCHlKCkQdJiR0IFbXjmzQmoQD0pqNEbYkMMcys15ApYj/8WfFarA9iX21a7Wnnw1NdoPYe7pRngDiOyF788Ph9TNaOAcztS0fIWsrSX5MGx7pSq2eRHXxr7zwm3dEC6/FHSOh75WuzQEAhLfFv24oK0A+241/ZD7/7JZsJIQGiXXNIIKdfDQsBKdQHoB2r0/4n8pl1b0iVk2OGUVnR7DMb0Y5gb/KR0oGtN02IZVtwzvenRFPWuECzVr1C8i959Yj4gdKQcDy0vx2nzLeSxqhAjbfcPO7BHJ2hTd0nhj9knV7u5TFdJ6aLZCfp2IB20ojE+AV8eGgfUutXMtSPngAnxJOU8P8r+nn/t/gbbBrJ50+p/ct//b/E4uuLg/03nPE7XoGv9huWTCv4B9DR9xHHFLThIsBCI5WY7Caa1HpRw3cTChcHo0WiLzw2TXN9B 8UDCST60 yITE/mBOlLHOglldefBJKMm2I9aVNUQqeTvb7jv/2utd9VGYucqqzZWmPfqhqb1Ihq1b1lLtTqKS3/FhoGyBFUI7gfYM3A4pcORowXY4bFrtHey/YzY7BZ5uO4BMaC105eINFX7dRwmFYED9YaJJy1gcL81fJjLHkcrHU/x9Ss0oPdJqTipDsnpIcDmFncPqiAJcYMzXuZL2dI+pdaKxcIQX/Zb6amTugsJ44Ltm/GXKE2HAuD6nwwPMRf+CcIID7KY6kq1oHoVHYmyoebemf9U04y5zB4gxyPXH3C7XBK7P42vM/6aanLBVr5S70nuYn0rpYl/DWVtXwM/Rn5ieiV6R/rT+z1lA4YQSxvvo5mOVUhOXICLEITsXTvqmg/TZ3OnOgzAo4zQpwkFlBbcJWUnZFIIuHHwWWH0pul84KBdoBV/kgit69l4yxLDXyPB4h/ALEaIGZdeiQKmzGgBN3AeDIneQ9/ql/1qVejXFxUEsexCUFILF1VSF1Nggcrk/Bj3EAm0v/uJaTvFFPz5zn2Cuy5Q== 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: List-Subscribe: List-Unsubscribe: On Wed, 24 Jul 2024 at 07:30, David Laight wrote: > > Implemented using _Generic() for portibility. I do think this is ultimately the clearer implementation, if only because the underlying trick it uses does very much depend on a very special oddity in the C type system. So then using the type comparison with _Generic() is rather natural, and allows for picking other things than 0/1 as a result. However, there is NO WAY this is a "portability" enhancement. The original trick basically works on all ANSI C versions, while "_Generic()" is quite a modern thing (added in C11? Something like that) Now, in the kernel we obviously already moved to -std=gnu11 a couple of years ago, so doing this looks reasonable. But what does not look reasonable to me is claiming that it's a portability thing. Quite the opposite. It still requires the same ternary operator type trick, now it just requires _Generic() support in _addition_ to it. Linus