From: david.laight.linux@gmail•com
To: Alexander Viro <viro@zeniv•linux.org.uk>,
Andre Almeida <andrealmeid@igalia•com>,
Andrew Cooper <andrew.cooper3@citrix•com>,
Christian Borntraeger <borntraeger@linux•ibm.com>,
Christian Brauner <brauner@kernel•org>,
Christophe Leroy <christophe.leroy@csgroup•eu>,
"Christophe Leroy (CS GROUP)" <chleroy@kernel•org>,
Darren Hart <dvhart@infradead•org>,
David Laight <david.laight.linux@gmail•com>,
Davidlohr Bueso <dave@stgolabs•net>,
Heiko Carstens <hca@linux•ibm.com>, Jan Kara <jack@suse•cz>,
Julia Lawall <Julia.Lawall@inria•fr>,
Linus Torvalds <torvalds@linux-foundation•org>,
linux-arm-kernel@lists•infradead.org,
linux-fsdevel@vger•kernel.org, linuxppc-dev@lists•ozlabs.org,
linux-riscv@lists•infradead.org, linux-s390@vger•kernel.org,
LKML <linux-kernel@vger•kernel.org>,
Madhavan Srinivasan <maddy@linux•ibm.com>,
Mathieu Desnoyers <mathieu.desnoyers@efficios•com>,
Michael Ellerman <mpe@ellerman•id.au>,
Nicholas Piggin <npiggin@gmail•com>,
Nicolas Palix <nicolas.palix@imag•fr>,
Palmer Dabbelt <palmer@dabbelt•com>,
Paul Walmsley <pjw@kernel•org>,
Peter Zijlstra <peterz@infradead•org>,
Russell King <linux@armlinux•org.uk>,
Sven Schnelle <svens@linux•ibm.com>,
Thomas Gleixner <tglx@linutronix•de>,
x86@kernel•org, Kees Cook <kees@kernel•org>,
akpm@linux-foundation•org
Subject: [PATCH v2 0/5] uaccess: Updates to scoped_user_access()
Date: Mon, 2 Mar 2026 13:27:50 +0000 [thread overview]
Message-ID: <20260302132755.1475451-1-david.laight.linux@gmail.com> (raw)
From: David Laight <david.laight.linux@gmail•com>
Converting kernel/signal.c to use scoped_user_access() had compilation
warnings because some of the pointers are 'pointer to const'.
This is fixed in patch 1.
The same problem has been found compiling arch/powerpc/lib/checksum_wrappers.c
For v2 I've changed the code to use 'auto' and replaced the over-complex
CLASS definition (and its for loop) with a much simpler __cleanup() function
on the second loop.
Patches 2 and 3 factor out the 'autoterminating nested for loops'.
I'm sure there'll be a 'bikeshed' discussion about the names.
Patch 4 stops warnings from -Wshadow (enabled by W=2).
I did think about making the _diag_xxx conditional on a W=2 build,
but since the pre-processor just emits #pragma lines and they are
smaller that the for() loop it doesn't seem worth while.
Patch 5 is the change to signal.c that prompted patch 1.
The generated code looks fine, but I've not tested it.
Most of the changes are to 'compat' code - so are probably not
usually performance critical.
IIRC the non-compat code uses copy_to/from_user() for the structures
so is probably slower than the compat code's member by member copy.
David Laight (5):
uaccess: Fix scoped_user_read_access() for 'pointer to const'
compiler.h: Add generic support for 'autoterminating nested for()
loops'
uaccess.h: Use with() and and_with() in __scoped_user_access()
uaccess: Disable -Wshadow in __scoped_user_access()
signal: Use scoped_user_access() instead of __put/get_user()
include/linux/compiler.h | 26 +++++++++++++++
include/linux/uaccess.h | 51 ++++++++++------------------
kernel/signal.c | 72 +++++++++++++++++++++++-----------------
3 files changed, 86 insertions(+), 63 deletions(-)
--
2.39.5
next reply other threads:[~2026-03-02 14:06 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-02 13:27 david.laight.linux [this message]
2026-03-02 13:27 ` [PATCH v2 1/5] uaccess: Fix scoped_user_read_access() for 'pointer to const' david.laight.linux
2026-03-02 14:59 ` Christophe Leroy (CS GROUP)
2026-03-02 17:26 ` Linus Torvalds
2026-03-02 18:55 ` David Laight
2026-03-02 13:27 ` [PATCH v2 2/5] compiler.h: Add generic support for 'autoterminating nested for() loops' david.laight.linux
2026-03-02 13:27 ` [PATCH v2 3/5] uaccess.h: Use with() and and_with() in __scoped_user_access() david.laight.linux
2026-03-02 13:27 ` [PATCH v2 4/5] uaccess: Disable -Wshadow " david.laight.linux
2026-03-02 15:00 ` Christophe Leroy (CS GROUP)
2026-03-03 9:12 ` David Laight
2026-03-02 17:17 ` Linus Torvalds
2026-03-05 8:10 ` kernel test robot
2026-03-02 13:27 ` [PATCH v2 next 5/5] signal: Use scoped_user_access() instead of __put/get_user() david.laight.linux
2026-03-02 16:07 ` Christophe Leroy (CS GROUP)
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=20260302132755.1475451-1-david.laight.linux@gmail.com \
--to=david.laight.linux@gmail$(echo .)com \
--cc=Julia.Lawall@inria$(echo .)fr \
--cc=akpm@linux-foundation$(echo .)org \
--cc=andrealmeid@igalia$(echo .)com \
--cc=andrew.cooper3@citrix$(echo .)com \
--cc=borntraeger@linux$(echo .)ibm.com \
--cc=brauner@kernel$(echo .)org \
--cc=chleroy@kernel$(echo .)org \
--cc=christophe.leroy@csgroup$(echo .)eu \
--cc=dave@stgolabs$(echo .)net \
--cc=dvhart@infradead$(echo .)org \
--cc=hca@linux$(echo .)ibm.com \
--cc=jack@suse$(echo .)cz \
--cc=kees@kernel$(echo .)org \
--cc=linux-arm-kernel@lists$(echo .)infradead.org \
--cc=linux-fsdevel@vger$(echo .)kernel.org \
--cc=linux-kernel@vger$(echo .)kernel.org \
--cc=linux-riscv@lists$(echo .)infradead.org \
--cc=linux-s390@vger$(echo .)kernel.org \
--cc=linux@armlinux$(echo .)org.uk \
--cc=linuxppc-dev@lists$(echo .)ozlabs.org \
--cc=maddy@linux$(echo .)ibm.com \
--cc=mathieu.desnoyers@efficios$(echo .)com \
--cc=mpe@ellerman$(echo .)id.au \
--cc=nicolas.palix@imag$(echo .)fr \
--cc=npiggin@gmail$(echo .)com \
--cc=palmer@dabbelt$(echo .)com \
--cc=peterz@infradead$(echo .)org \
--cc=pjw@kernel$(echo .)org \
--cc=svens@linux$(echo .)ibm.com \
--cc=tglx@linutronix$(echo .)de \
--cc=torvalds@linux-foundation$(echo .)org \
--cc=viro@zeniv$(echo .)linux.org.uk \
--cc=x86@kernel$(echo .)org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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