All of lore.kernel.org
 help / color / mirror / Atom feed
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


  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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.