OpenAFS Master Repository branch, master, updated. openafs-devel-1_9_2-161-ge94c183
Gerrit Code Review
gerrit@openafs.org
Fri, 28 Feb 2025 10:39:02 -0500
The following commit has been merged in the master branch:
commit e94c183faef42e5ffe85c157ede008f2817bdefd
Author: Cheyenne Wills <cwills@sinenomine.net>
Date: Tue Feb 25 20:09:12 2025 -0700
afs: Init structures via designated initializers
When the Linux kernel is configured with CONFIG_RANDSTRUCT=y, the
following error occurs when building the openafs kernel module:
src/libafs/MODLOAD-6.12.0-SP/rand-timer-kernel.c:46:5: error: positional initialization of field in ‘struct’ declared with ‘designated_init’ attribute [-Werror=designated-init]
46 | timer_seed,
| ^~~~~~~~~~
When the Linux kernel is configured with CONFIG_RANDSTRUCT=y, the Linux
build uses a Linux kernel-specific GCC plugin
(scripts/gcc-plugins/randomize_layout_plugin.c) that analyzes structures
and will add the designated_init attribute to any structure that is
determined to be a "pure operations struct" (i.e. contains only function
pointers or nested pure ops structs/unions). This is done so the plugin
can then randomize the layout. This causes some of our structures to be
flagged with the designated_init attribute, which triggers
-Werror=designated-init when we don't use designated initializers.
Within the Linux specific directory, src/afs/LINUX, the code already
uses designated initializers, however some of the shared code within
src/afs or that is included in the build for the kernel module still use
positional initialization when initializing pure operations structures.
Update the shared code that is used when building the Linux kernel
module to use designated initializers via the AFS_STRUCT_INIT macro.
Use a consistent alignment, and add trailing comma on the last
element, change 0 to NULL where applicable.
There are no functional changes within this commit.
Note: For consistency, all the initializers for rx_securityOps are being
updated even though not all of the files are part of the Linux kernel
module (e.g. rxkad_server.c).
Note: This error was discovered by an automated process that is used
by the Gentoo organization to test building packages with a hardened
Linux kernel.
Change-Id: Ie0b2c86d1bf802f883e0ced4a832e07d2e6729bd
Reviewed-on: https://gerrit.openafs.org/16290
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: Andrew Deason <adeason@sinenomine.net>
src/afs/afs_fetchstore.c | 20 ++++++++++----------
src/crypto/hcrypto/kernel/rand-timer.c | 14 +++++++-------
src/rxgk/rxgk_client.c | 30 +++++++++++++++---------------
src/rxgk/rxgk_server.c | 30 +++++++++++++++---------------
src/rxkad/rxkad_client.c | 30 +++++++++++++++---------------
src/rxkad/rxkad_server.c | 30 +++++++++++++++---------------
6 files changed, 77 insertions(+), 77 deletions(-)
--
OpenAFS Master Repository