linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Kuan-Wei Chiu <visitorckw@gmail.com>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: David Laight <david.laight.linux@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Laurent.pinchart@ideasonboard.com, airlied@gmail.com,
	akpm@linux-foundation.org, alistair@popple.id.au,
	andrew+netdev@lunn.ch, andrzej.hajda@intel.com,
	arend.vanspriel@broadcom.com, awalls@md.metrocast.net,
	bp@alien8.de, bpf@vger.kernel.org,
	brcm80211-dev-list.pdl@broadcom.com, brcm80211@lists.linux.dev,
	dave.hansen@linux.intel.com, davem@davemloft.net,
	dmitry.torokhov@gmail.com, dri-devel@lists.freedesktop.org,
	eajames@linux.ibm.com, edumazet@google.com, eleanor15x@gmail.com,
	gregkh@linuxfoundation.org, hverkuil@xs4all.nl,
	jernej.skrabec@gmail.com, jirislaby@kernel.org, jk@ozlabs.org,
	joel@jms.id.au, johannes@sipsolutions.net, jonas@kwiboo.se,
	jserv@ccns.ncku.edu.tw, kuba@kernel.org,
	linux-fsi@lists.ozlabs.org, linux-input@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-media@vger.kernel.org,
	linux-mtd@lists.infradead.org, linux-serial@vger.kernel.org,
	linux-wireless@vger.kernel.org, linux@rasmusvillemoes.dk,
	louis.peens@corigine.com, maarten.lankhorst@linux.intel.com,
	mchehab@kernel.org, mingo@redhat.com, miquel.raynal@bootlin.com,
	mripard@kernel.org, neil.armstrong@linaro.org,
	netdev@vger.kernel.org, oss-drivers@corigine.com,
	pabeni@redhat.com, parthiban.veerasooran@microchip.com,
	rfoss@kernel.org, richard@nod.at, simona@ffwll.ch,
	tglx@linutronix.de, tzimmermann@suse.de, vigneshr@ti.com,
	x86@kernel.org, yury.norov@gmail.com
Subject: Re: [PATCH v3 00/16] Introduce and use generic parity16/32/64 helper
Date: Sun, 9 Mar 2025 23:48:26 +0800	[thread overview]
Message-ID: <Z824SgB9Dt5zdWYc@visitorckw-System-Product-Name> (raw)
In-Reply-To: <EB85C3C1-8A0D-4CB9-B501-BFEABDF3E977@zytor.com>

On Fri, Mar 07, 2025 at 12:07:02PM -0800, H. Peter Anvin wrote:
> On March 7, 2025 11:53:10 AM PST, David Laight <david.laight.linux@gmail.com> wrote:
> >On Fri, 07 Mar 2025 11:30:35 -0800
> >"H. Peter Anvin" <hpa@zytor.com> wrote:
> >
> >> On March 7, 2025 10:49:56 AM PST, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
> >> >> (int)true most definitely is guaranteed to be 1.  
> >> >
> >> >That's not technically correct any more.
> >> >
> >> >GCC has introduced hardened bools that intentionally have bit patterns
> >> >other than 0 and 1.
> >> >
> >> >https://gcc.gnu.org/gcc-14/changes.html
> >> >
> >> >~Andrew  
> >> 
> >> Bit patterns in memory maybe (not that I can see the Linux kernel using them) but
> >> for compiler-generated conversations that's still a given, or the manager isn't C
> >> or anything even remotely like it.
> >> 
> >
> >The whole idea of 'bool' is pretty much broken by design.
> >The underlying problem is that values other than 'true' and 'false' can
> >always get into 'bool' variables.
> >
> >Once that has happened it is all fubar.
> >
> >Trying to sanitise a value with (say):
> >int f(bool v)
> >{
> >	return (int)v & 1;
> >}    
> >just doesn't work (see https://www.godbolt.org/z/MEndP3q9j)
> >
> >I really don't see how using (say) 0xaa and 0x55 helps.
> >What happens if the value is wrong? a trap or exception?, good luck recovering
> >from that.
> >
> >	David
> 
> Did you just discover GIGO?

Thanks for all the suggestions.

I don't have a strong opinion on the naming or return type. I'm still a
bit confused about whether I can assume that casting bool to int always
results in 0 or 1.

If that's the case, since most people prefer bool over int as the
return type and some are against introducing u1, my current plan is to
use the following in the next version:

bool parity_odd(u64 val);

This keeps the bool return type, renames the function for better
clarity, and avoids extra maintenance burden by having just one
function.

If I can't assume that casting bool to int always results in 0 or 1,
would it be acceptable to keep the return type as int?

Would this work for everyone?

Regards,
Kuan-Wei

  reply	other threads:[~2025-03-09 15:48 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-06 16:25 [PATCH v3 00/16] Introduce and use generic parity16/32/64 helper Kuan-Wei Chiu
2025-03-06 16:25 ` [PATCH v3 01/16] bitops: Change parity8() return type to bool Kuan-Wei Chiu
2025-03-06 20:45   ` David Laight
2025-03-07  6:48   ` Jiri Slaby
2025-03-07 11:38     ` Ingo Molnar
2025-03-07 11:42       ` Jiri Slaby
2025-03-07 12:13         ` Ingo Molnar
2025-03-07 12:14           ` H. Peter Anvin
2025-03-07 19:30             ` Yury Norov
2025-03-07 19:33               ` H. Peter Anvin
2025-03-13 16:26                 ` Yury Norov
2025-03-07 19:36         ` David Laight
2025-03-07 19:39           ` H. Peter Anvin
2025-03-12 23:56           ` Jacob Keller
2025-03-13  0:09             ` H. Peter Anvin
2025-03-13 16:24               ` Yury Norov
2025-03-13 16:36                 ` H. Peter Anvin
2025-03-13 21:09                   ` Jacob Keller
2025-03-14 19:06                     ` David Laight
2025-03-15  0:14                       ` H. Peter Anvin
2025-03-06 16:25 ` [PATCH v3 02/16] bitops: Add parity16(), parity32(), and parity64() helpers Kuan-Wei Chiu
2025-03-06 16:25 ` [PATCH v3 03/16] media: media/test_drivers: Replace open-coded parity calculation with parity8() Kuan-Wei Chiu
2025-03-06 16:25 ` [PATCH v3 04/16] media: pci: cx18-av-vbi: " Kuan-Wei Chiu
2025-03-06 16:25 ` [PATCH v3 05/16] media: saa7115: " Kuan-Wei Chiu
2025-03-06 16:25 ` [PATCH v3 06/16] serial: max3100: " Kuan-Wei Chiu
2025-03-06 16:25 ` [PATCH v3 07/16] lib/bch: Replace open-coded parity calculation with parity32() Kuan-Wei Chiu
2025-03-06 16:25 ` [PATCH v3 08/16] Input: joystick - " Kuan-Wei Chiu
2025-03-06 16:25 ` [PATCH v3 09/16] net: ethernet: oa_tc6: " Kuan-Wei Chiu
2025-03-06 16:25 ` [PATCH v3 10/16] wifi: brcm80211: " Kuan-Wei Chiu
2025-03-06 16:25 ` [PATCH v3 11/16] drm/bridge: dw-hdmi: " Kuan-Wei Chiu
2025-03-06 16:25 ` [PATCH v3 12/16] mtd: ssfdc: " Kuan-Wei Chiu
2025-03-06 16:25 ` [PATCH v3 13/16] fsi: i2cr: " Kuan-Wei Chiu
2025-03-06 16:25 ` [PATCH v3 14/16] fsi: i2cr: Replace open-coded parity calculation with parity64() Kuan-Wei Chiu
2025-03-06 16:25 ` [PATCH v3 15/16] Input: joystick - " Kuan-Wei Chiu
2025-03-06 16:25 ` [PATCH v3 16/16] nfp: bpf: " Kuan-Wei Chiu
2025-03-07  3:08 ` [PATCH v3 00/16] Introduce and use generic parity16/32/64 helper H. Peter Anvin
2025-03-07 18:49   ` Andrew Cooper
2025-03-07 19:30     ` H. Peter Anvin
2025-03-07 19:53       ` David Laight
2025-03-07 20:07         ` H. Peter Anvin
2025-03-09 15:48           ` Kuan-Wei Chiu [this message]
2025-03-09 16:00             ` H. Peter Anvin
2025-03-09 17:42             ` Jiri Slaby
2025-03-11 22:01             ` Yury Norov
2025-03-11 22:24               ` H. Peter Anvin
2025-03-12 15:51                 ` Yury Norov
2025-03-12 16:29                   ` Kuan-Wei Chiu
2025-03-13  7:41                     ` Kuan-Wei Chiu
2025-03-23 15:16                       ` Kuan-Wei Chiu
2025-03-23 22:40                         ` H. Peter Anvin
2025-03-24 15:53                           ` Yury Norov
2025-03-29 16:00                             ` Kuan-Wei Chiu
2025-03-25 19:43                         ` H. Peter Anvin
2025-04-03 14:39                           ` Kuan-Wei Chiu
2025-04-03 16:14                             ` Yury Norov
2025-04-03 16:54                               ` Kuan-Wei Chiu
2025-04-04  2:51                               ` Jeremy Kerr
2025-04-04  8:46                                 ` Kuan-Wei Chiu
2025-04-04  9:01                                   ` Jeremy Kerr
2025-04-04  8:47                               ` Kuan-Wei Chiu
2025-03-07  3:14 ` H. Peter Anvin
2025-03-07  9:19   ` Kuan-Wei Chiu
2025-03-07 10:52     ` Jiri Slaby
2025-03-07  6:57 ` Jiri Slaby
2025-03-07  9:22   ` Kuan-Wei Chiu
2025-03-07 15:55   ` Yury Norov
2025-03-07 18:30     ` Kuan-Wei Chiu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Z824SgB9Dt5zdWYc@visitorckw-System-Product-Name \
    --to=visitorckw@gmail.com \
    --cc=Laurent.pinchart@ideasonboard.com \
    --cc=airlied@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=alistair@popple.id.au \
    --cc=andrew+netdev@lunn.ch \
    --cc=andrew.cooper3@citrix.com \
    --cc=andrzej.hajda@intel.com \
    --cc=arend.vanspriel@broadcom.com \
    --cc=awalls@md.metrocast.net \
    --cc=bp@alien8.de \
    --cc=bpf@vger.kernel.org \
    --cc=brcm80211-dev-list.pdl@broadcom.com \
    --cc=brcm80211@lists.linux.dev \
    --cc=dave.hansen@linux.intel.com \
    --cc=davem@davemloft.net \
    --cc=david.laight.linux@gmail.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=eajames@linux.ibm.com \
    --cc=edumazet@google.com \
    --cc=eleanor15x@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hpa@zytor.com \
    --cc=hverkuil@xs4all.nl \
    --cc=jernej.skrabec@gmail.com \
    --cc=jirislaby@kernel.org \
    --cc=jk@ozlabs.org \
    --cc=joel@jms.id.au \
    --cc=johannes@sipsolutions.net \
    --cc=jonas@kwiboo.se \
    --cc=jserv@ccns.ncku.edu.tw \
    --cc=kuba@kernel.org \
    --cc=linux-fsi@lists.ozlabs.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linux@rasmusvillemoes.dk \
    --cc=louis.peens@corigine.com \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=mchehab@kernel.org \
    --cc=mingo@redhat.com \
    --cc=miquel.raynal@bootlin.com \
    --cc=mripard@kernel.org \
    --cc=neil.armstrong@linaro.org \
    --cc=netdev@vger.kernel.org \
    --cc=oss-drivers@corigine.com \
    --cc=pabeni@redhat.com \
    --cc=parthiban.veerasooran@microchip.com \
    --cc=rfoss@kernel.org \
    --cc=richard@nod.at \
    --cc=simona@ffwll.ch \
    --cc=tglx@linutronix.de \
    --cc=tzimmermann@suse.de \
    --cc=vigneshr@ti.com \
    --cc=x86@kernel.org \
    --cc=yury.norov@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).