From: David Laight <david.laight.linux@gmail.com>
To: "Arnd Bergmann" <arnd@arndb.de>
Cc: "Thomas Weißschuh" <thomas.weissschuh@linutronix.de>,
"David S . Miller" <davem@davemloft.net>,
"Andreas Larsson" <andreas@gaisler.com>,
"Andy Lutomirski" <luto@kernel.org>,
"Thomas Gleixner" <tglx@kernel.org>,
"Ingo Molnar" <mingo@redhat.com>,
"Borislav Petkov" <bp@alien8.de>,
"Dave Hansen" <dave.hansen@linux.intel.com>,
x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
"Heiko Carstens" <hca@linux.ibm.com>,
"Vasily Gorbik" <gor@linux.ibm.com>,
"Alexander Gordeev" <agordeev@linux.ibm.com>,
"Christian Borntraeger" <borntraeger@linux.ibm.com>,
"Sven Schnelle" <svens@linux.ibm.com>,
sparclinux@vger.kernel.org, linux-kernel@vger.kernel.org,
Linux-Arch <linux-arch@vger.kernel.org>,
linux-s390@vger.kernel.org
Subject: Re: [PATCH 4/4] asm-generic/bitsperlong.h: Add sanity checks for __BITS_PER_LONG
Date: Mon, 19 Jan 2026 17:47:30 +0000 [thread overview]
Message-ID: <20260119174730.5a20169d@pumpkin> (raw)
In-Reply-To: <4e4b1b5b-5f7d-4604-b5ef-0d0726263843@app.fastmail.com>
On Mon, 19 Jan 2026 15:57:49 +0100
"Arnd Bergmann" <arnd@arndb.de> wrote:
> On Mon, Jan 19, 2026, at 14:41, Thomas Weißschuh wrote:
> > On Mon, Jan 19, 2026 at 01:45:04PM +0100, Arnd Bergmann wrote:
> >> On Mon, Jan 19, 2026, at 11:56, Thomas Weißschuh wrote:
> >> > On Mon, Jan 19, 2026 at 10:37:58AM +0000, David Laight wrote:
> >> >>
> >> >> Don't you need a check that it isn't wrong on a user system?
> >> >> Which is what I thought it was doing.
> >> >
> >> > Not really. The overrides defined by arch/*/include/uapi/asm/bitsperlong.h are
> >> > being tested here. If they work in the kernel build I assume they also work
> >> > in userspace.
> >>
> >> I think You could just move check into include/asm-generic/bitsperlong.h
> >> to make this more obvious with the #ifdef __KERNEL__, and remove the
> >> disabled check from my original version there.
> >
> > Ok. I'd like to keep your existing test though, as it tests something different
> > and it would be nice to have that too at some point.
>
> Sure, that works too. I wonder if one of the recent vdso cleanups
> also happened to address the problem with the incorrect BITS_PER_LONG
> being visible in the vdso code. Maybe we can already turn that on again.
There is vdso/bits.h, but everything actually includes linux/bits.h first.
I was wondering what happens if you are actually using the 'uapi' headers
to build programs (may nolibc ones).
On x86-64, 'gcc foo.c' might work, but 'gcc -m32 foo.c' will find exactly
the same headers and go badly wrong unless everything is based on
compiler defines.
An assert (of some kind) that checks the pre-processor BITS_PER_LONG
constant actually matches sizof (long) seems reasonable for all build.
The alternative is to (somehow) manage to avoid needing a pre-processor
constant at all, moving everything to 'integer constant expressions'
instead (good luck with that...).
I'm most of the way through a 'de-bloat' patchset for bits.h.
I'm sure there is a good reason why GENMASK(hi, lo) isn't defined
as '((type)2 << hi) - ((type)1 << lo)'.
Since that definition doesn't need the bit-width in any form.
(Just beat up any static checker that objects to '2 << hi' being zero.)
I've only made that change for ASM files - IIRC the assembler only
supports one size of signed integer.
David
next prev parent reply other threads:[~2026-01-19 17:47 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-16 7:40 [PATCH 0/4] vDSO: Use 32-bit CHECKFLAGS for compat vDSO Thomas Weißschuh
2026-01-16 7:40 ` [PATCH 1/4] sparc64: vdso: " Thomas Weißschuh
2026-01-16 7:50 ` Arnd Bergmann
2026-01-16 7:40 ` [PATCH 2/4] x86/vdso: " Thomas Weißschuh
2026-01-16 7:49 ` Arnd Bergmann
2026-01-16 8:09 ` Thomas Weißschuh
2026-01-17 22:02 ` H. Peter Anvin
2026-01-17 22:05 ` Thomas Gleixner
2026-01-19 7:20 ` Thomas Weißschuh
2026-01-19 15:33 ` H. Peter Anvin
2026-01-16 7:40 ` [PATCH 3/4] s390/vdso: Trim includes in linker script Thomas Weißschuh
2026-01-16 7:45 ` Arnd Bergmann
2026-01-16 8:15 ` Thomas Weißschuh
2026-01-17 15:22 ` Heiko Carstens
2026-01-16 7:40 ` [PATCH 4/4] asm-generic/bitsperlong.h: Add sanity checks for __BITS_PER_LONG Thomas Weißschuh
2026-01-16 7:46 ` Arnd Bergmann
2026-01-19 10:06 ` David Laight
2026-01-19 10:13 ` Thomas Weißschuh
2026-01-19 10:37 ` David Laight
2026-01-19 10:56 ` Thomas Weißschuh
2026-01-19 12:45 ` Arnd Bergmann
2026-01-19 13:41 ` Thomas Weißschuh
2026-01-19 14:57 ` Arnd Bergmann
2026-01-19 17:47 ` David Laight [this message]
2026-01-20 7:23 ` Thomas Weißschuh
2026-01-19 15:33 ` H. Peter Anvin
2026-01-19 15:39 ` Thomas Weißschuh
2026-01-19 21:12 ` H. Peter Anvin
2026-01-19 21:39 ` Arnd Bergmann
2026-01-20 10:03 ` David Laight
2026-01-20 12:01 ` H. Peter Anvin
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=20260119174730.5a20169d@pumpkin \
--to=david.laight.linux@gmail.com \
--cc=agordeev@linux.ibm.com \
--cc=andreas@gaisler.com \
--cc=arnd@arndb.de \
--cc=borntraeger@linux.ibm.com \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=davem@davemloft.net \
--cc=gor@linux.ibm.com \
--cc=hca@linux.ibm.com \
--cc=hpa@zytor.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=luto@kernel.org \
--cc=mingo@redhat.com \
--cc=sparclinux@vger.kernel.org \
--cc=svens@linux.ibm.com \
--cc=tglx@kernel.org \
--cc=thomas.weissschuh@linutronix.de \
--cc=x86@kernel.org \
/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