* [PATCH AUTOSEL 6.15 15/35] um: Add cmpxchg8b_emu and checksum functions to asm-prototypes.h
[not found] <20250609134355.1341953-1-sashal@kernel.org>
@ 2025-06-09 13:43 ` Sasha Levin
0 siblings, 0 replies; only message in thread
From: Sasha Levin @ 2025-06-09 13:43 UTC (permalink / raw)
To: patches, stable
Cc: Sami Tolvanen, Masahiro Yamada, linux-kbuild, kernel test robot,
Johannes Berg, Sasha Levin
From: Sami Tolvanen <samitolvanen@google.com>
[ Upstream commit 674d03f6bd6b0f8327f1a4920ff5893557facfbd ]
With CONFIG_GENDWARFKSYMS, um builds fail due to missing prototypes
in asm/asm-prototypes.h. Add declarations for cmpxchg8b_emu and the
exported checksum functions, including csum_partial_copy_generic as
it's also exported.
Cc: Masahiro Yamada <masahiroy@kernel.org>
Cc: linux-kbuild@vger.kernel.org
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202503251216.lE4t9Ikj-lkp@intel.com/
Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
Link: https://patch.msgid.link/20250326190500.847236-2-samitolvanen@google.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
**YES**
This commit should be backported to stable kernel trees based on the
following analysis:
## Analysis
### Purpose and Context
This commit fixes a build failure in the User Mode Linux (UM)
architecture when `CONFIG_GENDWARFKSYMS` is enabled. The
`CONFIG_GENDWARFKSYMS` feature is a new kernel build system enhancement
for generating DWARF-based symbol versioning, which requires proper
prototypes in `asm-prototypes.h` files to generate correct CRCs for
exported symbols.
### Code Changes Analysis
**File 1: `arch/um/include/asm/asm-prototypes.h`**
- **Before**: Only included the generic asm-prototypes.h
- **After**: Added includes for `<asm/checksum.h>` and conditional
declaration of `cmpxchg8b_emu()` for `CONFIG_UML_X86`
**File 2: `arch/x86/um/asm/checksum.h`**
- **Before**: Only declared `csum_partial()` function
- **After**: Added declaration for `csum_partial_copy_generic()` with a
comment explaining it's for export type visibility
### Why This Should Be Backported
1. **Fixes Important Build Failures**: This directly addresses build
failures when `CONFIG_GENDWARFKSYMS` is enabled for UM architecture,
as confirmed by the kernel test robot report.
2. **Minimal Risk Changes**:
- Only adds function declarations, no implementation changes
- Changes are confined to UM architecture headers
- No behavioral changes to existing code paths
3. **Follows Established Patterns**: Similar commits in the reference
history (Similar Commit #1 and #5) that add missing prototypes to
`asm-prototypes.h` files were marked as "YES" for backporting. This
follows the exact same pattern.
4. **Critical Infrastructure Fix**: The `asm-prototypes.h`
infrastructure is essential for proper symbol versioning. Missing
prototypes can cause genksyms to segfault during build, making this a
critical build system fix.
5. **Architecture-Specific Scope**: Changes are limited to UM
architecture, reducing risk of regressions in other subsystems.
6. **Self-Contained**: The fix includes both the missing `cmpxchg8b_emu`
prototype (conditional on `CONFIG_UML_X86`) and the checksum function
declarations, making it complete.
### Comparison to Reference Commits
- **Similar to Commit #1**: Adds missing prototypes for genksyms CRC
generation (Status: YES)
- **Similar to Commit #5**: Fixes missing prototypes causing build
issues with symbol versioning (Status: YES)
- **Unlike Commits #2, #3, #4**: This is not just a comment update or
cleanup, but fixes actual build failures
The fix addresses a concrete build failure affecting users who enable
`CONFIG_GENDWARFKSYMS` with UM, making it an important bugfix that meets
stable tree criteria for backporting.
arch/um/include/asm/asm-prototypes.h | 5 +++++
arch/x86/um/asm/checksum.h | 3 +++
2 files changed, 8 insertions(+)
diff --git a/arch/um/include/asm/asm-prototypes.h b/arch/um/include/asm/asm-prototypes.h
index 5898a26daa0dd..408b31d591279 100644
--- a/arch/um/include/asm/asm-prototypes.h
+++ b/arch/um/include/asm/asm-prototypes.h
@@ -1 +1,6 @@
#include <asm-generic/asm-prototypes.h>
+#include <asm/checksum.h>
+
+#ifdef CONFIG_UML_X86
+extern void cmpxchg8b_emu(void);
+#endif
diff --git a/arch/x86/um/asm/checksum.h b/arch/x86/um/asm/checksum.h
index b07824500363f..ddc144657efad 100644
--- a/arch/x86/um/asm/checksum.h
+++ b/arch/x86/um/asm/checksum.h
@@ -20,6 +20,9 @@
*/
extern __wsum csum_partial(const void *buff, int len, __wsum sum);
+/* Do not call this directly. Declared for export type visibility. */
+extern __visible __wsum csum_partial_copy_generic(const void *src, void *dst, int len);
+
/**
* csum_fold - Fold and invert a 32bit checksum.
* sum: 32bit unfolded sum
--
2.39.5
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2025-06-09 13:44 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20250609134355.1341953-1-sashal@kernel.org>
2025-06-09 13:43 ` [PATCH AUTOSEL 6.15 15/35] um: Add cmpxchg8b_emu and checksum functions to asm-prototypes.h Sasha Levin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox