@@ -6,30 +6,29 @@ Everything you ever wanted to know about Linux -stable releases
66Rules on what kind of patches are accepted, and which ones are not, into the
77"-stable" tree:
88
9+ - It or an equivalent fix must already exist in Linus' tree (upstream).
910 - It must be obviously correct and tested.
1011 - It cannot be bigger than 100 lines, with context.
11- - It must fix only one thing.
12- - It must fix a real bug that bothers people (not a, "This could be a
13- problem..." type thing).
14- - It must fix a problem that causes a build error (but not for things
15- marked CONFIG_BROKEN), an oops, a hang, data corruption, a real
16- security issue, or some "oh, that's not good" issue. In short, something
17- critical.
18- - Serious issues as reported by a user of a distribution kernel may also
19- be considered if they fix a notable performance or interactivity issue.
20- As these fixes are not as obvious and have a higher risk of a subtle
21- regression they should only be submitted by a distribution kernel
22- maintainer and include an addendum linking to a bugzilla entry if it
23- exists and additional information on the user-visible impact.
24- - New device IDs and quirks are also accepted.
25- - No "theoretical race condition" issues, unless an explanation of how the
26- race can be exploited is also provided.
27- - It cannot contain any "trivial" fixes in it (spelling changes,
28- whitespace cleanups, etc).
2912 - It must follow the
3013 :ref: `Documentation/process/submitting-patches.rst <submittingpatches >`
3114 rules.
32- - It or an equivalent fix must already exist in Linus' tree (upstream).
15+ - It must either fix a real bug that bothers people or just add a device ID.
16+ To elaborate on the former:
17+
18+ - It fixes a problem like an oops, a hang, data corruption, a real security
19+ issue, a hardware quirk, a build error (but not for things marked
20+ CONFIG_BROKEN), or some "oh, that's not good" issue.
21+ - Serious issues as reported by a user of a distribution kernel may also
22+ be considered if they fix a notable performance or interactivity issue.
23+ As these fixes are not as obvious and have a higher risk of a subtle
24+ regression they should only be submitted by a distribution kernel
25+ maintainer and include an addendum linking to a bugzilla entry if it
26+ exists and additional information on the user-visible impact.
27+ - No "This could be a problem..." type of things like a "theoretical race
28+ condition", unless an explanation of how the bug can be exploited is also
29+ provided.
30+ - No "trivial" fixes without benefit for users (spelling changes, whitespace
31+ cleanups, etc).
3332
3433
3534Procedure for submitting patches to the -stable tree
@@ -41,111 +40,142 @@ Procedure for submitting patches to the -stable tree
4140 process but should follow the procedures in
4241 :ref: `Documentation/process/security-bugs.rst <securitybugs >`.
4342
44- For all other submissions, choose one of the following procedures
45- -----------------------------------------------------------------
43+ There are three options to submit a change to -stable trees:
44+
45+ 1. Add a 'stable tag' to the description of a patch you then submit for
46+ mainline inclusion.
47+ 2. Ask the stable team to pick up a patch already mainlined.
48+ 3. Submit a patch to the stable team that is equivalent to a change already
49+ mainlined.
50+
51+ The sections below describe each of the options in more detail.
52+
53+ :ref: `option_1 ` is **strongly ** preferred, it is the easiest and most common.
54+ :ref: `option_2 ` is mainly meant for changes where backporting was not considered
55+ at the time of submission. :ref: `option_3 ` is an alternative to the two earlier
56+ options for cases where a mainlined patch needs adjustments to apply in older
57+ series (for example due to API changes).
58+
59+ When using option 2 or 3 you can ask for your change to be included in specific
60+ stable series. When doing so, ensure the fix or an equivalent is applicable,
61+ submitted, or already present in all newer stable trees still supported. This is
62+ meant to prevent regressions that users might later encounter on updating, if
63+ e.g. a fix merged for 5.19-rc1 would be backported to 5.10.y, but not to 5.15.y.
4664
4765.. _option_1 :
4866
4967Option 1
5068********
5169
52- To have the patch automatically included in the stable tree, add the tag
70+ To have a patch you submit for mainline inclusion later automatically picked up
71+ for stable trees, add the tag
5372
5473.. code-block :: none
5574
5675 Cc: stable@vger.kernel.org
5776
58- in the sign-off area. Once the patch is merged it will be applied to
59- the stable tree without anything else needing to be done by the author
60- or subsystem maintainer.
77+ in the sign-off area. Once the patch is mainlined it will be applied to the
78+ stable tree without anything else needing to be done by the author or
79+ subsystem maintainer.
6180
62- .. _option_2 :
81+ To sent additional instructions to the stable team, use a shell-style inline
82+ comment:
6383
64- Option 2
65- ********
84+ * To specify any additional patch prerequisites for cherry picking use the
85+ following format in the sign-off area:
6686
67- After the patch has been merged to Linus' tree, send an email to
68- stable@vger.kernel.org containing the subject of the patch, the commit ID,
69- why you think it should be applied, and what kernel version you wish it to
70- be applied to.
87+ .. code-block :: none
7188
72- .. _option_3 :
89+ Cc: <stable@vger.kernel.org> # 3.3.x: a1f84a3: sched: Check for idle
90+ Cc: <stable@vger.kernel.org> # 3.3.x: 1b9508f: sched: Rate-limit newidle
91+ Cc: <stable@vger.kernel.org> # 3.3.x: fd21073: sched: Fix affinity logic
92+ Cc: <stable@vger.kernel.org> # 3.3.x
93+ Signed-off-by: Ingo Molnar <mingo@elte.hu>
7394
74- Option 3
75- ********
95+ The tag sequence has the meaning of:
7696
77- Send the patch, after verifying that it follows the above rules, to
78- stable@vger.kernel.org. You must note the upstream commit ID in the
79- changelog of your submission, as well as the kernel version you wish
80- it to be applied to.
97+ .. code-block :: none
8198
82- :ref: `option_1 ` is **strongly ** preferred, is the easiest and most common.
83- :ref: `option_2 ` and :ref: `option_3 ` are more useful if the patch isn't deemed
84- worthy at the time it is applied to a public git tree (for instance, because
85- it deserves more regression testing first). :ref: `option_3 ` is especially
86- useful if the original upstream patch needs to be backported (for example
87- the backport needs some special handling due to e.g. API changes).
99+ git cherry-pick a1f84a3
100+ git cherry-pick 1b9508f
101+ git cherry-pick fd21073
102+ git cherry-pick <this commit>
88103
89- Note that for :ref: `option_3 `, if the patch deviates from the original
90- upstream patch (for example because it had to be backported) this must be very
91- clearly documented and justified in the patch description.
104+ * For patches that may have kernel version prerequisites specify them using
105+ the following format in the sign-off area:
92106
93- The upstream commit ID must be specified with a separate line above the commit
94- text, like this:
107+ .. code-block :: none
95108
96- .. code-block :: none
109+ Cc: <stable@vger.kernel.org> # 3.3.x
97110
98- commit <sha1> upstream.
111+ The tag has the meaning of:
99112
100- or alternatively:
113+ .. code-block :: none
101114
102- .. code-block :: none
115+ git cherry-pick <this commit>
103116
104- [ Upstream commit <sha1> ]
117+ For each "-stable" tree starting with the specified version.
105118
106- Additionally, some patches submitted via :ref: `option_1 ` may have additional
107- patch prerequisites which can be cherry-picked. This can be specified in the
108- following format in the sign-off area:
119+ Note, such tagging is unnecessary if the stable team can derive the
120+ appropriate versions from Fixes: tags.
109121
110- .. code-block :: none
122+ * To delay pick up of patches, use the following format:
111123
112- Cc: <stable@vger.kernel.org> # 3.3.x: a1f84a3: sched: Check for idle
113- Cc: <stable@vger.kernel.org> # 3.3.x: 1b9508f: sched: Rate-limit newidle
114- Cc: <stable@vger.kernel.org> # 3.3.x: fd21073: sched: Fix affinity logic
115- Cc: <stable@vger.kernel.org> # 3.3.x
116- Signed-off-by: Ingo Molnar <mingo@elte.hu>
124+ .. code-block :: none
117125
118- The tag sequence has the meaning of:
126+ Cc: <stable@vger.kernel.org> # after 4 weeks in mainline
119127
120- .. code-block :: none
128+ * For any other requests, just add a note to the stable tag. This for example
129+ can be used to point out known problems:
121130
122- git cherry-pick a1f84a3
123- git cherry-pick 1b9508f
124- git cherry-pick fd21073
125- git cherry-pick <this commit>
131+ .. code-block :: none
132+
133+ Cc: <stable@vger.kernel.org> # see patch description, needs adjustments for <= 6.3
134+
135+ .. _option_2 :
136+
137+ Option 2
138+ ********
139+
140+ If the patch already has been merged to mainline, send an email to
141+ stable@vger.kernel.org containing the subject of the patch, the commit ID,
142+ why you think it should be applied, and what kernel versions you wish it to
143+ be applied to.
144+
145+ .. _option_3 :
126146
127- Also, some patches may have kernel version prerequisites. This can be
128- specified in the following format in the sign-off area:
147+ Option 3
148+ ********
149+
150+ Send the patch, after verifying that it follows the above rules, to
151+ stable@vger.kernel.org and mention the kernel versions you wish it to be applied
152+ to. When doing so, you must note the upstream commit ID in the changelog of your
153+ submission with a separate line above the commit text, like this:
129154
130155.. code-block :: none
131156
132- Cc: <stable@vger.kernel.org> # 3.3.x
157+ commit <sha1> upstream.
133158
134- The tag has the meaning of :
159+ or alternatively :
135160
136161.. code-block :: none
137162
138- git cherry-pick <this commit>
163+ [ Upstream commit <sha1> ]
164+
165+ If the submitted patch deviates from the original upstream patch (for example
166+ because it had to be adjusted for the older API), this must be very clearly
167+ documented and justified in the patch description.
139168
140- For each "-stable" tree starting with the specified version.
141169
142- Following the submission:
170+ Following the submission
171+ ------------------------
143172
144- - The sender will receive an ACK when the patch has been accepted into the
145- queue, or a NAK if the patch is rejected. This response might take a few
146- days, according to the developer's schedules.
147- - If accepted, the patch will be added to the -stable queue, for review by
148- other developers and by the relevant subsystem maintainer.
173+ The sender will receive an ACK when the patch has been accepted into the
174+ queue, or a NAK if the patch is rejected. This response might take a few
175+ days, according to the schedules of the stable team members.
176+
177+ If accepted, the patch will be added to the -stable queue, for review by other
178+ developers and by the relevant subsystem maintainer.
149179
150180
151181Review cycle
@@ -174,6 +204,7 @@ Review cycle
174204 security kernel team, and not go through the normal review cycle.
175205 Contact the kernel security team for more details on this procedure.
176206
207+
177208Trees
178209-----
179210
0 commit comments