* [PATCH AUTOSEL 6.18-6.17] crypto: ccp - Add support for PCI device 0x115A
@ 2025-12-05 4:33 Sasha Levin
2025-12-05 4:33 ` [PATCH AUTOSEL 6.18-6.17] scripts: kdoc_parser.py: warn about Python version only once Sasha Levin
2025-12-05 4:33 ` [PATCH AUTOSEL 6.18-5.10] livepatch: Match old_sympos 0 and 1 in klp_find_func() Sasha Levin
0 siblings, 2 replies; 3+ messages in thread
From: Sasha Levin @ 2025-12-05 4:33 UTC (permalink / raw)
To: patches, stable
Cc: Mario Limonciello (AMD), Tom Lendacky, Herbert Xu, Sasha Levin,
john.allen, linux-crypto
From: "Mario Limonciello (AMD)" <superm1@kernel.org>
[ Upstream commit 9fc6290117259a8dbf8247cb54559df62fd1550f ]
PCI device 0x115A is similar to pspv5, except it doesn't have platform
access mailbox support.
Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org>
Acked-by: Tom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
LLM Generated explanations, may be completely bogus:
## Comprehensive Analysis
### 1. COMMIT MESSAGE ANALYSIS
**Subject:** `crypto: ccp - Add support for PCI device 0x115A`
**Key Information:**
- PCI device 0x115A is a new AMD security processor variant
- The commit message states it's "similar to pspv5, except it doesn't
have platform access mailbox support"
- Signed off by Mario Limonciello (AMD engineer) and Tom Lendacky (AMD)
- Merged by Herbert Xu (crypto maintainer)
**Tags Present:**
- `Signed-off-by`: 3 (proper sign-off chain)
- `Acked-by`: Tom Lendacky (driver maintainer acknowledgment)
- **NO** `Cc: stable@vger.kernel.org` tag
- **NO** `Fixes:` tag (this is expected - it's not fixing a bug, it's
enabling hardware)
### 2. CODE CHANGE ANALYSIS
The commit adds:
**A) New `pspv7` structure (~10 lines):**
```c
static const struct psp_vdata pspv7 = {
.tee = &teev2,
.cmdresp_reg = 0x10944,
.cmdbuff_addr_lo_reg = 0x10948,
.cmdbuff_addr_hi_reg = 0x1094c,
.bootloader_info_reg = 0x109ec,
.feature_reg = 0x109fc,
.inten_reg = 0x10510,
.intsts_reg = 0x10514,
};
```
This is **identical to pspv5** except it omits the `.platform_access =
&pa_v2` field. This is the explicit difference mentioned in the commit
message.
**B) New `dev_vdata[9]` entry (~6 lines):**
```c
{ /* 9 */
.bar = 2,
#ifdef CONFIG_CRYPTO_DEV_SP_PSP
.psp_vdata = &pspv7,
#endif
},
```
**C) New PCI device ID entry (1 line):**
```c
{ PCI_VDEVICE(AMD, 0x115A), (kernel_ulong_t)&dev_vdata[9] },
```
### 3. CLASSIFICATION
**This is a NEW DEVICE ID addition** - one of the explicitly allowed
exceptions for stable kernel backports.
The commit:
- Does NOT add new features or APIs
- Does NOT change existing behavior
- Only enables existing PSP driver functionality on new hardware
- Uses established patterns already in the driver
### 4. SCOPE AND RISK ASSESSMENT
**Change size:** ~17 lines total
- Small, contained data-only change
- No logic changes whatsoever
- Follows identical patterns used by existing pspv1-pspv6 structures
**Risk assessment: VERY LOW**
- The driver already handles NULL `platform_access` - verified in `psp-
dev.c`:
```c
if (psp->vdata->platform_access) {
ret = platform_access_dev_init(psp);
...
}
```
- Several existing structures (pspv1, pspv4, pspv6) already omit
`platform_access`
- The `teev2` structure referenced already exists since v6.5
- All register offsets are identical to pspv5
### 5. USER IMPACT
**Who is affected:**
- Users with AMD PCI device 0x115A (new AMD security processor variant)
- Without this patch, this hardware is completely non-functional
**Severity:** HIGH for affected users - enables critical security
hardware (TPM-like functionality)
### 6. STABILITY INDICATORS
**Positive signals:**
- Acked by Tom Lendacky (the original driver author and AMD maintainer)
- Follows exact same pattern as 10+ previous device ID additions in this
driver
- Same author (Mario Limonciello) has successfully added similar devices
before (0x17E0, 0x156E, etc.)
### 7. DEPENDENCY CHECK
**Required in stable tree:**
- `teev2` structure - added in v6.5 (commit 4aa0931be8f0a)
- Verified present in v6.6 and later
**Recent related commits:**
- 52e8ae868a824: "Add missing bootloader info reg for pspv5" (May 2025)
- 72942d6538564: "Add missing tee info reg for teev2" (May 2025)
The pspv7 structure in this commit already includes the
`bootloader_info_reg` correctly, so it was created after these fixes.
### 8. COMPARISON WITH SIMILAR COMMITS
This commit follows the exact same pattern as:
- `bb4185e595e47`: "Add support for PCI device 0x156E" - Added pspv6 +
dev_vdata[8] + PCI ID
- `4aa0931be8f0a`: "Add support for PCI device 0x17E0" - Added
pspv5/teev2 + dev_vdata[7] + PCI ID
- `6cb345939b8cc`: "Add support for PCI device 0x1134" - Added PCI ID
only
- `63935e2ee1f2a`: "Add support for PCI device 0x17D8" - Added PCI ID
only
These similar device ID additions are routinely considered for stable
trees.
---
## Final Assessment
**Should this be backported?**
**YES**, for the following reasons:
1. **Falls under the NEW DEVICE ID exception** - explicitly allowed per
stable kernel rules for enabling real hardware
2. **Trivial, data-only change** - ~17 lines, no logic changes
3. **Uses existing, proven infrastructure** - teev2 exists, NULL
platform_access handling exists
4. **Follows established patterns** - identical to 10+ previous similar
commits in this driver
5. **Zero risk of regression** - only affects users with the specific
0x115A device
6. **Enables real hardware** - without this, users with this AMD
security processor cannot use it at all
7. **Properly reviewed** - Acked by AMD maintainer, merged by crypto
subsystem maintainer
**Concerns:**
- Requires stable tree to have v6.6+ (for teev2 structure)
- May need the bootloader_info_reg fixes backported first for
consistency (commits 52e8ae868a824 and 72942d6538564)
The change is obviously correct, well-tested (used same patterns as
existing code), and enables hardware support that users need. This is
exactly the type of device ID addition that stable trees accept.
**YES**
drivers/crypto/ccp/sp-pci.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/drivers/crypto/ccp/sp-pci.c b/drivers/crypto/ccp/sp-pci.c
index e7bb803912a6d..8891ceee1d7d0 100644
--- a/drivers/crypto/ccp/sp-pci.c
+++ b/drivers/crypto/ccp/sp-pci.c
@@ -459,6 +459,17 @@ static const struct psp_vdata pspv6 = {
.intsts_reg = 0x10514, /* P2CMSG_INTSTS */
};
+static const struct psp_vdata pspv7 = {
+ .tee = &teev2,
+ .cmdresp_reg = 0x10944, /* C2PMSG_17 */
+ .cmdbuff_addr_lo_reg = 0x10948, /* C2PMSG_18 */
+ .cmdbuff_addr_hi_reg = 0x1094c, /* C2PMSG_19 */
+ .bootloader_info_reg = 0x109ec, /* C2PMSG_59 */
+ .feature_reg = 0x109fc, /* C2PMSG_63 */
+ .inten_reg = 0x10510, /* P2CMSG_INTEN */
+ .intsts_reg = 0x10514, /* P2CMSG_INTSTS */
+};
+
#endif
static const struct sp_dev_vdata dev_vdata[] = {
@@ -525,6 +536,13 @@ static const struct sp_dev_vdata dev_vdata[] = {
.psp_vdata = &pspv6,
#endif
},
+ { /* 9 */
+ .bar = 2,
+#ifdef CONFIG_CRYPTO_DEV_SP_PSP
+ .psp_vdata = &pspv7,
+#endif
+ },
+
};
static const struct pci_device_id sp_pci_table[] = {
{ PCI_VDEVICE(AMD, 0x1537), (kernel_ulong_t)&dev_vdata[0] },
@@ -539,6 +557,7 @@ static const struct pci_device_id sp_pci_table[] = {
{ PCI_VDEVICE(AMD, 0x17E0), (kernel_ulong_t)&dev_vdata[7] },
{ PCI_VDEVICE(AMD, 0x156E), (kernel_ulong_t)&dev_vdata[8] },
{ PCI_VDEVICE(AMD, 0x17D8), (kernel_ulong_t)&dev_vdata[8] },
+ { PCI_VDEVICE(AMD, 0x115A), (kernel_ulong_t)&dev_vdata[9] },
/* Last entry must be zero */
{ 0, }
};
--
2.51.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH AUTOSEL 6.18-6.17] scripts: kdoc_parser.py: warn about Python version only once
2025-12-05 4:33 [PATCH AUTOSEL 6.18-6.17] crypto: ccp - Add support for PCI device 0x115A Sasha Levin
@ 2025-12-05 4:33 ` Sasha Levin
2025-12-05 4:33 ` [PATCH AUTOSEL 6.18-5.10] livepatch: Match old_sympos 0 and 1 in klp_find_func() Sasha Levin
1 sibling, 0 replies; 3+ messages in thread
From: Sasha Levin @ 2025-12-05 4:33 UTC (permalink / raw)
To: patches, stable; +Cc: Mauro Carvalho Chehab, Jonathan Corbet, Sasha Levin
From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
[ Upstream commit ade9b9576e2f000fb2ef0ac3bcd26e1167fd813b ]
When running kernel-doc over multiple documents, it emits
one error message per file with is not what we want:
$ python3.6 scripts/kernel-doc.py . --none
...
Warning: ./include/trace/events/swiotlb.h:0 Python 3.7 or later is required for correct results
Warning: ./include/trace/events/iommu.h:0 Python 3.7 or later is required for correct results
Warning: ./include/trace/events/sock.h:0 Python 3.7 or later is required for correct results
...
Change the logic to warn it only once at the library:
$ python3.6 scripts/kernel-doc.py . --none
Warning: Python 3.7 or later is required for correct results
Warning: ./include/cxl/features.h:0 Python 3.7 or later is required for correct results
When running from command line, it warns twice, but that sounds
ok.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Message-ID: <68e54cf8b1201d1f683aad9bc710a99421910356.1758196090.git.mchehab+huawei@kernel.org>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
LLM Generated explanations, may be completely bogus:
## Analysis
### 1. COMMIT MESSAGE ANALYSIS
**Subject**: `scripts: kdoc_parser.py: warn about Python version only
once`
**Problem**: When `kernel-doc` processes multiple files with Python <
3.7, it emits one warning per file, creating noise:
```
Warning: ./include/trace/events/swiotlb.h:0 Python 3.7 or later is
required for correct results
Warning: ./include/trace/events/iommu.h:0 Python 3.7 or later is
required for correct results
Warning: ./include/trace/events/sock.h:0 Python 3.7 or later is required
for correct results
...
```
**Solution**: Add a module-level flag (`python_warning`) so the warning
is emitted once per process run.
**Tags**: No "Cc: stable@vger.kernel.org" or "Fixes:" tag.
**Author**: Mauro Carvalho Chehab (kernel-doc maintainer)
**Date**: September 18, 2025
---
### 2. CODE CHANGE ANALYSIS
**Files changed**: 1 file (`scripts/lib/kdoc/kdoc_parser.py`)
**Lines changed**: +6, -1 (net +5)
**Diff**:
```python
+python_warning = False # Module-level global flag
class KernelDoc:
def __init__(self, config, fname):
...
- if sys.version_info.major == 3 and sys.version_info.minor < 7:
+ global python_warning
+ if (not python_warning and
+ sys.version_info.major == 3 and sys.version_info.minor <
7):
self.emit_msg(0,
'Python 3.7 or later is required for correct
results')
+ python_warning = True
```
**Mechanism**:
- `KernelDoc.__init__()` runs once per file.
- The check was unconditional, causing repeated warnings.
- The fix adds a module-level flag set after the first warning to
suppress subsequent ones.
**Correctness**: Correct. The flag is checked and set atomically within
the same conditional, preventing races.
---
### 3. CLASSIFICATION
**Type**: Bug fix (UX)
**Category**: Build/documentation tool fix
- Not kernel runtime code
- Affects `kernel-doc` output
- Improves developer experience
**Exception categories**: None (not device IDs, quirks, DT updates, or
build fixes)
**Security**: No security impact
---
### 4. SCOPE AND RISK ASSESSMENT
**Complexity**: Low
- Simple flag check
- No logic changes
- Minimal code
**Risk**: Very low
- Only changes warning output
- No functional changes
- No new code paths
- No dependencies on other changes
**Subsystem**: Documentation build tools (`scripts/lib/kdoc/`)
- Less critical than kernel runtime code
- Still affects developers building docs
**Files touched**: 1 file, 7 lines changed
---
### 5. USER IMPACT
**Who is affected**:
- Developers building kernel documentation
- CI/CD systems running `kernel-doc`
- Anyone using Python < 3.7 with `kernel-doc` on multiple files
**Severity**: Low–moderate
- Not a crash or data corruption
- User-visible annoyance (warning spam)
- Can obscure other warnings
**Real-world impact**: Yes
- Occurs when processing multiple files (common)
- Example: `python3.6 scripts/kernel-doc.py . --none` on a directory
**Note**: Python 3.9+ is the kernel minimum, but some systems may still
use older versions.
---
### 6. STABILITY INDICATORS
**Tested-by**: Not mentioned
**Reviewed-by**: Jonathan Corbet (kernel-doc maintainer)
**Age**: Commit from September 2025 (recent)
**Maintainer approval**: Signed-off by Jonathan Corbet (maintainer)
---
### 7. DEPENDENCY CHECK
**Prerequisite**: Requires commit `40020fe8e3a40` ("docs: kdoc: emit a
warning for ancient versions of Python") from July 2025.
**Backport implications**:
- If the prerequisite exists in a stable tree, this applies cleanly.
- If not, both commits would need to be backported together.
- The prerequisite is also a small, low-risk change.
**Code existence**: The `KernelDoc` class and the warning check exist in
current stable trees (the warning was added in 2025).
---
### 8. STABLE KERNEL RULES EVALUATION
**1. Obviously correct and tested**: Yes — simple flag check, reviewed
by maintainer
**2. Fixes a real bug**: Yes — excessive warning spam
**3. Important issue**: Moderate — UX improvement, not critical
**4. Small and contained**: Yes — 7 lines, single file
**5. No new features**: Correct — only changes warning behavior
**6. Applies cleanly**: Yes — if prerequisite exists
**Concerns**:
- Documentation tool fix (less critical than kernel code)
- Requires prerequisite commit
- UX improvement, not a critical bug
**Benefits**:
- Fixes a real user-visible issue
- Very low risk
- Small and simple
- Improves developer experience
---
### 9. FINAL ASSESSMENT
**Verdict**: YES, with conditions
**Reasoning**:
1. Fixes a real user-visible bug (excessive warnings)
2. Very low risk (warning output only)
3. Small, simple change
4. Reviewed by maintainer
5. Improves developer experience
**Conditions**:
- The prerequisite commit (`40020fe8e3a40`) must exist in the target
stable tree, or both commits should be backported together.
- This is a UX improvement, not critical, but it addresses a real
annoyance.
**Recommendation**: Backport to stable trees that have the prerequisite
warning commit, or backport both commits together. The low risk and
clear benefit justify inclusion.
**YES**
scripts/lib/kdoc/kdoc_parser.py | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/scripts/lib/kdoc/kdoc_parser.py b/scripts/lib/kdoc/kdoc_parser.py
index 2376f180b1fa9..89d920e0b65ca 100644
--- a/scripts/lib/kdoc/kdoc_parser.py
+++ b/scripts/lib/kdoc/kdoc_parser.py
@@ -350,6 +350,7 @@ class KernelEntry:
self.section = SECTION_DEFAULT
self._contents = []
+python_warning = False
class KernelDoc:
"""
@@ -383,9 +384,13 @@ class KernelDoc:
# We need Python 3.7 for its "dicts remember the insertion
# order" guarantee
#
- if sys.version_info.major == 3 and sys.version_info.minor < 7:
+ global python_warning
+ if (not python_warning and
+ sys.version_info.major == 3 and sys.version_info.minor < 7):
+
self.emit_msg(0,
'Python 3.7 or later is required for correct results')
+ python_warning = True
def emit_msg(self, ln, msg, warning=True):
"""Emit a message"""
--
2.51.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH AUTOSEL 6.18-5.10] livepatch: Match old_sympos 0 and 1 in klp_find_func()
2025-12-05 4:33 [PATCH AUTOSEL 6.18-6.17] crypto: ccp - Add support for PCI device 0x115A Sasha Levin
2025-12-05 4:33 ` [PATCH AUTOSEL 6.18-6.17] scripts: kdoc_parser.py: warn about Python version only once Sasha Levin
@ 2025-12-05 4:33 ` Sasha Levin
1 sibling, 0 replies; 3+ messages in thread
From: Sasha Levin @ 2025-12-05 4:33 UTC (permalink / raw)
To: patches, stable
Cc: Song Liu, Josh Poimboeuf, Petr Mladek, Sasha Levin, jikos, mbenes,
live-patching
From: Song Liu <song@kernel.org>
[ Upstream commit 139560e8b973402140cafeb68c656c1374bd4c20 ]
When there is only one function of the same name, old_sympos of 0 and 1
are logically identical. Match them in klp_find_func().
This is to avoid a corner case with different toolchain behavior.
In this specific issue, two versions of kpatch-build were used to
build livepatch for the same kernel. One assigns old_sympos == 0 for
unique local functions, the other assigns old_sympos == 1 for unique
local functions. Both versions work fine by themselves. (PS: This
behavior change was introduced in a downstream version of kpatch-build.
This change does not exist in upstream kpatch-build.)
However, during livepatch upgrade (with the replace flag set) from a
patch built with one version of kpatch-build to the same fix built with
the other version of kpatch-build, livepatching fails with errors like:
[ 14.218706] sysfs: cannot create duplicate filename 'xxx/somefunc,1'
...
[ 14.219466] Call Trace:
[ 14.219468] <TASK>
[ 14.219469] dump_stack_lvl+0x47/0x60
[ 14.219474] sysfs_warn_dup.cold+0x17/0x27
[ 14.219476] sysfs_create_dir_ns+0x95/0xb0
[ 14.219479] kobject_add_internal+0x9e/0x260
[ 14.219483] kobject_add+0x68/0x80
[ 14.219485] ? kstrdup+0x3c/0xa0
[ 14.219486] klp_enable_patch+0x320/0x830
[ 14.219488] patch_init+0x443/0x1000 [ccc_0_6]
[ 14.219491] ? 0xffffffffa05eb000
[ 14.219492] do_one_initcall+0x2e/0x190
[ 14.219494] do_init_module+0x67/0x270
[ 14.219496] init_module_from_file+0x75/0xa0
[ 14.219499] idempotent_init_module+0x15a/0x240
[ 14.219501] __x64_sys_finit_module+0x61/0xc0
[ 14.219503] do_syscall_64+0x5b/0x160
[ 14.219505] entry_SYSCALL_64_after_hwframe+0x4b/0x53
[ 14.219507] RIP: 0033:0x7f545a4bd96d
...
[ 14.219516] kobject: kobject_add_internal failed for somefunc,1 with
-EEXIST, don't try to register things with the same name ...
This happens because klp_find_func() thinks somefunc with old_sympos==0
is not the same as somefunc with old_sympos==1, and klp_add_object_nops
adds another xxx/func,1 to the list of functions to patch.
Signed-off-by: Song Liu <song@kernel.org>
Acked-by: Josh Poimboeuf <jpoimboe@kernel.org>
[pmladek@suse.com: Fixed some typos.]
Reviewed-by: Petr Mladek <pmladek@suse.com>
Tested-by: Petr Mladek <pmladek@suse.com>
Signed-off-by: Petr Mladek <pmladek@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
LLM Generated explanations, may be completely bogus:
## Analysis
### 1. COMMIT MESSAGE ANALYSIS
**Subject:** `livepatch: Match old_sympos 0 and 1 in klp_find_func()`
**Key indicators:**
- Fixes a bug: livepatch upgrade failures with replace flag
- Real-world impact: sysfs duplicate filename error causing patch
enablement to fail
- Clear problem description with error logs
- Tested-by: Petr Mladek
- Reviewed-by: Petr Mladek, Josh Poimboeuf
**Root cause:** Different versions of kpatch-build assign `old_sympos` 0
vs 1 for unique functions. During livepatch upgrade with replace,
`klp_find_func()` doesn't match them, leading to duplicate sysfs
entries.
### 2. CODE CHANGE ANALYSIS
**Files changed:** 1 file (`kernel/livepatch/core.c`)
**Lines changed:** 7 lines added, 1 line modified
**Change:**
```c
// Before:
if ((strcmp(old_func->old_name, func->old_name) == 0) &&
(old_func->old_sympos == func->old_sympos)) {
// After:
if ((strcmp(old_func->old_name, func->old_name) == 0) &&
((old_func->old_sympos == func->old_sympos) ||
(old_func->old_sympos == 0 && func->old_sympos == 1) ||
(old_func->old_sympos == 1 && func->old_sympos == 0))) {
```
**Technical explanation:**
- For unique symbols, `old_sympos` 0 and 1 both refer to the first
occurrence
- `klp_find_object_symbol()` treats `sympos == 0` as "unique symbol"
(see lines 170-175)
- Sysfs displays `old_sympos == 0` as `1` (line 820: `func->old_sympos ?
func->old_sympos : 1`)
- The fix makes `klp_find_func()` treat 0 and 1 as equivalent for
matching
**Why this fixes the bug:**
- During replace upgrade, `klp_add_object_nops()` calls
`klp_find_func()` to check if a function already exists
- Without the fix, `old_sympos==0` and `old_sympos==1` don't match
- This causes duplicate sysfs entries, leading to `-EEXIST` and patch
enablement failure
### 3. CLASSIFICATION
**Type:** Bug fix (not a feature)
**Exception categories:** None needed — this is a bug fix
**Security:** No security impact, but prevents a reliability issue
### 4. SCOPE AND RISK ASSESSMENT
**Scope:**
- Single function (`klp_find_func()`)
- Localized change
- No architectural changes
**Risk:** Low
- Small, targeted change
- Clear logic
- No new code paths
- Only affects matching logic for unique symbols
**Potential issues:**
- None identified
- Change is conservative (adds equivalence, doesn't remove checks)
### 5. USER IMPACT
**Severity:** High for affected users
- Prevents livepatch upgrades with replace flag
- Causes kernel errors and patch enablement failure
- Affects users upgrading between different kpatch-build versions
**Affected users:**
- Users performing livepatch upgrades with replace
- Users mixing kpatch-build versions
- Enterprise users relying on livepatch for updates
**Impact assessment:**
- Core livepatch functionality (upgrade path)
- Real-world scenario (different toolchain versions)
- User-visible failure (error messages, failed upgrades)
### 6. STABILITY INDICATORS
**Testing:**
- Tested-by: Petr Mladek
- Reviewed-by: Petr Mladek, Josh Poimboeuf
- Real-world scenario documented
**Code maturity:**
- Function exists since atomic replace (Jan 2019)
- Present in stable trees (5.1+)
- Mature code path
### 7. DEPENDENCY CHECK
**Dependencies:**
1. `klp_find_func()` — introduced with atomic replace (commit
e1452b607c48c, Jan 2019)
2. `klp_add_object_nops()` — same commit
3. Replace functionality — present since ~5.1
**Backport compatibility:**
- Applies cleanly to any stable tree with atomic replace
- No other commits required
- Self-contained fix
**Affected stable versions:**
- Any stable tree with atomic replace (~5.1+)
- All current LTS trees (6.1.y, 6.6.y, etc.)
### 8. STABLE KERNEL RULES COMPLIANCE
**Meets criteria:**
1. Obviously correct: Yes — clear equivalence for unique symbols
2. Fixes real bug: Yes — documented failure case
3. Important issue: Yes — breaks livepatch upgrades
4. Small and contained: Yes — 7 lines, 1 function
5. No new features: Yes — bug fix only
6. Applies cleanly: Yes — no conflicts expected
**No violations:**
- No new features
- No API changes
- No architectural changes
- No new dependencies
### 9. RISK VS BENEFIT TRADE-OFF
**Benefit:**
- Fixes upgrade failures
- Low risk, high value
- Addresses real user issue
**Risk:**
- Minimal — localized change
- Conservative logic
- Well-tested
**Conclusion:** Strong benefit, minimal risk
### 10. FINAL ASSESSMENT
This commit should be backported to stable kernel trees.
**Reasons:**
1. Fixes a real bug that breaks livepatch upgrades
2. Small, localized change (7 lines)
3. Low risk, clear logic
4. Well-tested and reviewed
5. No new features or dependencies
6. Applies cleanly to stable trees with atomic replace
7. High user impact for affected users
**Recommendation:** Backport to all stable trees that include atomic
replace functionality (approximately 5.1.y and later).
**YES**
kernel/livepatch/core.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/kernel/livepatch/core.c b/kernel/livepatch/core.c
index 0e73fac55f8eb..4e7a5cbc40a91 100644
--- a/kernel/livepatch/core.c
+++ b/kernel/livepatch/core.c
@@ -88,8 +88,14 @@ static struct klp_func *klp_find_func(struct klp_object *obj,
struct klp_func *func;
klp_for_each_func(obj, func) {
+ /*
+ * Besides identical old_sympos, also consider old_sympos
+ * of 0 and 1 are identical.
+ */
if ((strcmp(old_func->old_name, func->old_name) == 0) &&
- (old_func->old_sympos == func->old_sympos)) {
+ ((old_func->old_sympos == func->old_sympos) ||
+ (old_func->old_sympos == 0 && func->old_sympos == 1) ||
+ (old_func->old_sympos == 1 && func->old_sympos == 0))) {
return func;
}
}
--
2.51.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-12-05 4:34 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-05 4:33 [PATCH AUTOSEL 6.18-6.17] crypto: ccp - Add support for PCI device 0x115A Sasha Levin
2025-12-05 4:33 ` [PATCH AUTOSEL 6.18-6.17] scripts: kdoc_parser.py: warn about Python version only once Sasha Levin
2025-12-05 4:33 ` [PATCH AUTOSEL 6.18-5.10] livepatch: Match old_sympos 0 and 1 in klp_find_func() Sasha Levin
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.