@@ -6,30 +6,29 @@ Everything you ever wanted to know about Linux -stable releases
6
6
Rules on what kind of patches are accepted, and which ones are not, into the
7
7
"-stable" tree:
8
8
9
+ - It or an equivalent fix must already exist in Linus' tree (upstream).
9
10
- It must be obviously correct and tested.
10
11
- 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).
29
12
- It must follow the
30
13
:ref: `Documentation/process/submitting-patches.rst <submittingpatches >`
31
14
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).
33
32
34
33
35
34
Procedure for submitting patches to the -stable tree
@@ -41,111 +40,142 @@ Procedure for submitting patches to the -stable tree
41
40
process but should follow the procedures in
42
41
:ref: `Documentation/process/security-bugs.rst <securitybugs >`.
43
42
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.
46
64
47
65
.. _option_1 :
48
66
49
67
Option 1
50
68
********
51
69
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
53
72
54
73
.. code-block :: none
55
74
56
75
57
76
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.
61
80
62
- .. _option_2 :
81
+ To sent additional instructions to the stable team, use a shell-style inline
82
+ comment:
63
83
64
- Option 2
65
- ********
84
+ * To specify any additional patch prerequisites for cherry picking use the
85
+ following format in the sign-off area:
66
86
67
- After the patch has been merged to Linus' tree, send an email to
68
- [email protected] 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
71
88
72
- .. _option_3 :
89
+ Cc: <[email protected] > # 3.3.x: a1f84a3: sched: Check for idle
90
+ Cc: <[email protected] > # 3.3.x: 1b9508f: sched: Rate-limit newidle
91
+ Cc: <[email protected] > # 3.3.x: fd21073: sched: Fix affinity logic
92
+
93
+ Signed-off-by: Ingo Molnar <[email protected] >
73
94
74
- Option 3
75
- ********
95
+ The tag sequence has the meaning of:
76
96
77
- Send the patch, after verifying that it follows the above rules, to
78
- [email protected] . 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
81
98
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>
88
103
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:
92
106
93
- The upstream commit ID must be specified with a separate line above the commit
94
- text, like this:
107
+ .. code-block :: none
95
108
96
- .. code-block :: none
109
+
97
110
98
- commit <sha1> upstream.
111
+ The tag has the meaning of:
99
112
100
- or alternatively:
113
+ .. code-block :: none
101
114
102
- .. code-block :: none
115
+ git cherry-pick <this commit>
103
116
104
- [ Upstream commit <sha1> ]
117
+ For each "-stable" tree starting with the specified version.
105
118
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.
109
121
110
- .. code-block :: none
122
+ * To delay pick up of patches, use the following format:
111
123
112
- Cc: <[email protected] > # 3.3.x: a1f84a3: sched: Check for idle
113
- Cc: <[email protected] > # 3.3.x: 1b9508f: sched: Rate-limit newidle
114
- Cc: <[email protected] > # 3.3.x: fd21073: sched: Fix affinity logic
115
-
116
- Signed-off-by: Ingo Molnar <[email protected] >
124
+ .. code-block :: none
117
125
118
- The tag sequence has the meaning of:
126
+ Cc: <[email protected] > # after 4 weeks in mainline
119
127
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:
121
130
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: <[email protected] > # 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
+ [email protected] 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 :
126
146
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
+ [email protected] 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:
129
154
130
155
.. code-block :: none
131
156
132
-
157
+ commit <sha1> upstream.
133
158
134
- The tag has the meaning of :
159
+ or alternatively :
135
160
136
161
.. code-block :: none
137
162
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.
139
168
140
- For each "-stable" tree starting with the specified version.
141
169
142
- Following the submission:
170
+ Following the submission
171
+ ------------------------
143
172
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.
149
179
150
180
151
181
Review cycle
@@ -174,6 +204,7 @@ Review cycle
174
204
security kernel team, and not go through the normal review cycle.
175
205
Contact the kernel security team for more details on this procedure.
176
206
207
+
177
208
Trees
178
209
-----
179
210
0 commit comments