Linux kernel -stable discussions
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: stable@vger.kernel.org
Cc: Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.1.y 8/8] [AUTOMATED CONFLICT RESOLUTION] Documentation for 870a9e42ecc6fe1b8c25d87af043cb0d9c178fe1
Date: Tue,  1 Sep 2026 15:28:33 -0400	[thread overview]
Message-ID: <20260901192833.1439569-8-sashal@kernel.org> (raw)
In-Reply-To: <20260901192833.1439569-1-sashal@kernel.org>

This commit documents the automated conflict resolution performed by claude
for upstream commit 870a9e42ecc6fe1b8c25d87af043cb0d9c178fe1.

claude's resolution process:
================================================================================
Build passed clean (rc=0 on both x86 and arm64); all warnings are pre-existing/unrelated (dtsi clock warnings, xen/objtool noinstr warnings) and not caused by this change.

## Summary

**Conflict:** Single hunk in `net/ipv4/tcp_output.c:tcp_connect_init()`. Our tree's `window_clamp` assignment (`tp->window_clamp = ...`) lacks a `WRITE_ONCE()` wrapper that upstream added in a separate, unrelated commit not present in this tree. Git couldn't reconcile the two forms of that line since the target commit's context included the `WRITE_ONCE` wrapper.

**Resolution:** Kept our tree's existing line (`tp->window_clamp = dst_metric(dst, RTAX_WINDOW);`, no `WRITE_ONCE`) unchanged, and applied only the actual payload of this commit — replacing `dst_metric_advmss(dst)` with `tcp_dst_advmss(dst)` on that line, matching the other 4 (conflict-free) call sites. The resulting diff is a pure, minimal application of the upstream fix (new `tcp_dst_advmss()` helper in `include/net/tcp.h`, plus 5 call-site substitutions) — no divergence from the original commit beyond that one unavoidable context difference.

Commit `18e91d6e2785f` is on the branch with the original message and author (Yong Wang) preserved, and the build gate is green.
================================================================================

Backport verification analysis (via claude):
================================================================================
All 5 file/site changes match exactly (same stat as upstream), and no stray `dst_metric_advmss` call sites were left unconverted in the TCP paths (the remaining hit in `xfrm_policy.c` is outside this commit's scope, untouched upstream too). The build gate passed clean. This is a high-quality backport.

## Analysis

**1. Intent preservation — correct.** The helper `tcp_dst_advmss()` is added verbatim (`max_t(u32, dst_metric_advmss(dst), TCP_MIN_MSS)`), and all 5 call sites that upstream converts (`tcp_ipv4.c`, `tcp_minisocks.c`, `tcp_output.c` x3, `tcp_ipv6.c`) are converted identically. The fix's actual security-relevant payload — clamping route-derived advmss so it can never reach 0 and cause a divide-by-zero in `tcp_select_initial_window()` — is fully and correctly applied.

**2. Differences from upstream — justified.** The only textual difference (beyond expected line-number drift from tree divergence) is in `tcp_connect_init()`:

```
- WRITE_ONCE(tp->window_clamp, dst_metric(dst, RTAX_WINDOW));   // upstream
+ tp->window_clamp = dst_metric(dst, RTAX_WINDOW);              // backport (unchanged)
```

I verified this is *not* something the backport dropped — the parent commit in this tree already had the plain assignment (no `WRITE_ONCE`), confirmed by `git show 488f5e59f0d9c^:net/ipv4/tcp_output.c` and a fruitless `git log -S"WRITE_ONCE(tp->window_clamp"` search. The `WRITE_ONCE` wrapping was introduced by a separate, unrelated upstream commit that was never backported to this tree — it's pure surrounding context that happened to collide with this commit's 3-line hunk during the 3-way merge, not part of this fix's payload. The resolver correctly recognized this and preserved the tree's existing form while applying only the actual substitution (`dst_metric_advmss(dst)` → `tcp_dst_advmss(dst)`) on that line.

**3. Potential concerns — none identified.**
- `TCP_MIN_MSS` (88U) already exists in this tree's `tcp.h`, so the helper compiles as-is.
- No other in-tree callers of `dst_metric_advmss()` were missed; the one remaining hit (`xfrm_policy.c`) is out of scope for this commit both upstream and here.
- Commit metadata (author, `Cc: stable`, `Fixes:`, `[ Upstream commit ... ]` line, dual SoB) is all intact and properly formatted.
- Build gate is green with no new warnings attributable to this change.

**4. Overall assessment: correct, minimal, faithful backport.** The single conflict was a genuine context mismatch from an unrelated, un-backported commit, and it was resolved with the minimum necessary divergence — no scope creep, no missed call sites, no incorrect logic. No issues found.
================================================================================

This is an empty commit for documentation purposes only.
-- 
2.53.0


      parent reply	other threads:[~2026-09-01 19:28 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-31 12:53 FAILED: patch "[PATCH] tcp: clamp route advmss to TCP_MIN_MSS" failed to apply to 6.1-stable tree gregkh
2026-09-01 19:28 ` [PATCH 6.1.y 1/8] net: dst: introduce dst->dev_rcu Sasha Levin
2026-09-01 19:28   ` [PATCH 6.1.y 2/8] ipv6: start using dst_dev_rcu() Sasha Levin
2026-09-01 19:28   ` [PATCH 6.1.y 3/8] ipv6: pass proto by value to ipv6_push_nfrag_opts() and ipv6_push_frag_opts() Sasha Levin
2026-09-01 19:28   ` [PATCH 6.1.y 4/8] inet: add dst4_mtu() and dst6_mtu() helpers Sasha Levin
2026-09-01 19:28   ` [PATCH 6.1.y 5/8] ipv6: use dst6_mtu() instead of dst_mtu() Sasha Levin
2026-09-01 19:28   ` [PATCH 6.1.y 6/8] ipv4: use dst4_mtu() " Sasha Levin
2026-09-01 19:28   ` [PATCH 6.1.y 7/8] tcp: clamp route advmss to TCP_MIN_MSS Sasha Levin
2026-09-01 19:28   ` Sasha Levin [this message]

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=20260901192833.1439569-8-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
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