lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20260119174730.5a20169d@pumpkin>
Date: Mon, 19 Jan 2026 17:47:30 +0000
From: David Laight <david.laight.linux@...il.com>
To: "Arnd Bergmann" <arnd@...db.de>
Cc: Thomas Weißschuh <thomas.weissschuh@...utronix.de>,
 "David S . Miller" <davem@...emloft.net>, "Andreas Larsson"
 <andreas@...sler.com>, "Andy Lutomirski" <luto@...nel.org>, "Thomas
 Gleixner" <tglx@...nel.org>, "Ingo Molnar" <mingo@...hat.com>, "Borislav
 Petkov" <bp@...en8.de>, "Dave Hansen" <dave.hansen@...ux.intel.com>,
 x86@...nel.org, "H. Peter Anvin" <hpa@...or.com>, "Heiko Carstens"
 <hca@...ux.ibm.com>, "Vasily Gorbik" <gor@...ux.ibm.com>, "Alexander
 Gordeev" <agordeev@...ux.ibm.com>, "Christian Borntraeger"
 <borntraeger@...ux.ibm.com>, "Sven Schnelle" <svens@...ux.ibm.com>,
 sparclinux@...r.kernel.org, linux-kernel@...r.kernel.org, Linux-Arch
 <linux-arch@...r.kernel.org>, linux-s390@...r.kernel.org
Subject: Re: [PATCH 4/4] asm-generic/bitsperlong.h: Add sanity checks for
 __BITS_PER_LONG

On Mon, 19 Jan 2026 15:57:49 +0100
"Arnd Bergmann" <arnd@...db.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


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ