From: "Theodore Ts'o" <tytso@mit.edu>
To: workflows@vger.kernel.org, ksummit@lists.linux.dev
Cc: Sasha Levin <sashal@kernel.org>,
Bradley Morgan <brads@mainlining.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
"Theodore Ts'o" <tytso@mit.edu>,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
Jonathan Corbet <corbet@lwn.net>,
Shuah Khan <skhan@linuxfoundation.org>,
Randy Dunlap <rdunlap@infradead.org>,
Mark Brown <broonie@kernel.org>,
Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
Leon Romanovsky <leon@kernel.org>,
Konstantin Ryabitsev <konstantin@linuxfoundation.org>,
Thorsten Leemhuis <linux@leemhuis.info>,
"Michael S. Tsirkin" <mst@redhat.com>,
Kees Cook <kees@kernel.org>,
Geert Uytterhoeven <geert@linux-m68k.org>,
Dan Carpenter <error27@gmail.com>,
Miguel Ojeda <ojeda@kernel.org>,
Alexei Starovoitov <alexei.starovoitov@gmail.com>,
Julia Lawall <julia.lawall@inria.fr>, SJ Park <sj@kernel.org>,
stable@vger.kernel.org
Subject: [PATCH v5 3/6] agents: add a skill to determine stable tags
Date: Wed, 11 Nov 2026 17:59:35 -0500 [thread overview]
Message-ID: <20261111225940.1573565-4-tytso@mit.edu> (raw)
In-Reply-To: <20261111225940.1573565-1-tytso@mit.edu>
From: Sasha Levin <sashal@kernel.org>
Whether a fix needs a stable tag, and which releases it should reach, is
decided by hand and is often missed or left too broad. Add a skill that
sends the agent to stable-kernel-rules.rst for the decision and the tag
format, lists the kinds of changes the stable trees take and leave out
in practice, and adds the checks agents tend to get wrong: finding the
first release that contains each introducing commit, checking that the
fix applies to the oldest affected release, giving every stable tag the
same version, and following the subsystem's stable policy.
If the decision cannot be made, the skill returns no tag. Point the
bug-fix procedure in coding-assistants.rst at the skill.
Signed-off-by: Sasha Levin <sashal@kernel.org>
Reviewed-by: Bradley Morgan <brads@mainlining.org>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://patch.msgid.link/20261020161642.3713052-4-sashal@kernel.org
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
---
Documentation/process/coding-assistants.rst | 6 +-
agents/skills/stable-tag/SKILL.md | 72 +++++++++++++++++++++
2 files changed, 76 insertions(+), 2 deletions(-)
create mode 100644 agents/skills/stable-tag/SKILL.md
diff --git a/Documentation/process/coding-assistants.rst b/Documentation/process/coding-assistants.rst
index ca1cc255606b..81ee530a8a7f 100644
--- a/Documentation/process/coding-assistants.rst
+++ b/Documentation/process/coding-assistants.rst
@@ -37,6 +37,8 @@ The following skills are available:
* agents/skills/find-fixes/SKILL.md determines the Fixes tag of a bug fix, or
checks an existing one.
+* agents/skills/stable-tag/SKILL.md decides whether a fix goes to stable and
+ returns its stable tag, or checks an existing one.
Licensing and Legal Requirements
================================
@@ -83,8 +85,8 @@ these steps:
another one. The fix must not add build warnings and must pass the
checkpatch.pl checks (see submitting-patches.rst).
6. Commit the working fix with a detailed message describing the problem, the
- solution and a Fixes tag determined with the find-fixes skill. Do not
- add a Signed-off-by tag.
+ solution, a Fixes tag determined with the find-fixes skill, and a stable
+ tag if the stable-tag skill calls for one. Do not add a Signed-off-by tag.
7. Identify the maintainers and lists using scripts/get_maintainer.pl.
Documentation/process/security-bugs.rst shows how to do that.
8. Indicate what could not be done. If the fix could not be built or tested, or
diff --git a/agents/skills/stable-tag/SKILL.md b/agents/skills/stable-tag/SKILL.md
new file mode 100644
index 000000000000..d87bcc95089d
--- /dev/null
+++ b/agents/skills/stable-tag/SKILL.md
@@ -0,0 +1,72 @@
+---
+# SPDX-License-Identifier: GPL-2.0-only
+name: stable-tag
+description: >-
+ Decide whether a Linux kernel fix should be backported to stable kernels
+ and return verified Cc: stable tag lines. Use when preparing or reviewing
+ bug-fix patches, drafting their commit messages, or checking an existing
+ stable tag.
+---
+
+# Determine a stable tag
+
+Read Documentation/process/stable-kernel-rules.rst. It says which changes go
+to stable and how to write the tag, its prerequisites and its version. Follow
+the rules for skills in Documentation/process/coding-assistants.rst.
+
+Judge a change by what it does, not by how its description labels it: a
+"cleanup" that releases a resource on an error path fixes a leak. In practice,
+the stable trees take:
+
+- Fixes for crashes, oopses, BUG and WARN splats, hangs, lockups, RCU stalls,
+ deadlocks, data corruption and security issues.
+- Fixes for use-after-free, double free, NULL pointer dereferences,
+ out-of-bounds accesses, integer overflows, uninitialized data, reference
+ counting errors, and memory or resource leaks.
+- Fixes for races, including data races.
+- Fixes for incorrect behavior, such as wrong results, wrong hardware
+ programming, or endianness and type errors.
+- Fixes for problems reported by syzbot, other fuzzers, or the KASAN, KMSAN,
+ KCSAN and UBSAN sanitizers.
+- New device IDs and quirks for drivers that exist in the stable trees, device
+ tree fixes, and device tree additions for hardware that existing drivers
+ support.
+- Corrections to documentation that is wrong.
+- Performance fixes that prevent lockups, stalls or hangs.
+- Reverts of commits that are in a released kernel.
+- Fixes for bugs introduced by commits that were backported to stable.
+
+They do not take the following, unless a fix that is taken depends on it:
+
+- New features, new user-visible interfaces or behavior, new drivers, and new
+ module parameters or sysfs attributes.
+- Refactoring, code movement and other preparation patches.
+- Optimizations that do not prevent lockups, stalls or hangs.
+- Cleanups that do not change behavior, such as style, renames and comment
+ changes.
+
+Then work out which releases need the fix:
+
+- Determine the Fixes tags with the find-fixes skill first. A change with no
+ introducing commit, such as a new device ID, a quirk or a build fix, or a
+ bug older than the available history, affects every release that contains
+ the code it changes. Otherwise, if the Fixes tags are unresolved, so is the
+ stable decision.
+- For each Fixes tag, find the first release that contains the commit, not the
+ release it was based on. If no release contains it, check whether the
+ commit was itself backported to stable.
+- Check that everything the fix uses exists in the oldest affected release.
+ If something is missing, list the commit that added it as a prerequisite
+ if it is small and fit for stable, or start the tag at the first release
+ that has it.
+- Give every stable tag in a commit the same version: a tag without a version
+ asks for every stable tree and overrides the versions in the other tags.
+ The stable tooling reads the first version number in a tag comment as the
+ version, so describe what older trees need in the commit message.
+- Follow the stable tag policy in the maintainer profiles, the `P:` entries in
+ MAINTAINERS, for the changed files.
+- Ask the caller whether the fix addresses an unpublished vulnerability, as
+ described in Documentation/process/threat-model.rst.
+
+Return the tag lines with the reasons for them, or the reasons for no tag. If
+the decision cannot be made, return no tag and say what is missing.
--
2.53.0
next prev parent reply other threads:[~2026-11-11 23:01 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-11 22:59 [PATCH v5 0/6] agents: add skills for Fixes tags, stable tags, similar bugs, and commit messages Theodore Ts'o
2026-11-11 22:59 ` [PATCH v5 1/6] agents: add infrastructure for agent resources Theodore Ts'o
2026-11-11 22:59 ` [PATCH v5 2/6] agents: add a skill to determine Fixes tags Theodore Ts'o
2026-11-11 22:59 ` Theodore Ts'o [this message]
2026-11-11 22:59 ` [PATCH v5 4/6] agents: add a skill to find other instances of a fixed bug Theodore Ts'o
2026-11-11 22:59 ` [PATCH v5 5/6] agents: add a skill to write commit messages Theodore Ts'o
2026-11-11 22:59 ` [PATCH v5 6/6] agents: add a skill to write KUnit tests Theodore Ts'o
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=20261111225940.1573565-4-tytso@mit.edu \
--to=tytso@mit.edu \
--cc=alexei.starovoitov@gmail.com \
--cc=brads@mainlining.org \
--cc=broonie@kernel.org \
--cc=corbet@lwn.net \
--cc=error27@gmail.com \
--cc=geert@linux-m68k.org \
--cc=gregkh@linuxfoundation.org \
--cc=julia.lawall@inria.fr \
--cc=kees@kernel.org \
--cc=konstantin@linuxfoundation.org \
--cc=ksummit@lists.linux.dev \
--cc=laurent.pinchart@ideasonboard.com \
--cc=leon@kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@leemhuis.info \
--cc=mst@redhat.com \
--cc=ojeda@kernel.org \
--cc=rdunlap@infradead.org \
--cc=sashal@kernel.org \
--cc=sj@kernel.org \
--cc=skhan@linuxfoundation.org \
--cc=stable@vger.kernel.org \
--cc=workflows@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
all inboxes | Powered by JetHome®