]> git.ipfire.org Git - thirdparty/kernel/stable.git/blame - Documentation/process/stable-kernel-rules.rst
Merge tag 'nfs-for-5.1-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs
[thirdparty/kernel/stable.git] / Documentation / process / stable-kernel-rules.rst
CommitLineData
609d99a3
MCC
1.. _stable_kernel_rules:
2
5fe270a4
MCC
3Everything you ever wanted to know about Linux -stable releases
4===============================================================
fc185d95 5
e48e9909
JJ
6Rules on what kind of patches are accepted, and which ones are not, into the
7"-stable" tree:
fc185d95
GKH
8
9 - It must be obviously correct and tested.
84eb8d06 10 - It cannot be bigger than 100 lines, with context.
fc185d95
GKH
11 - It must fix only one thing.
12 - It must fix a real bug that bothers people (not a, "This could be a
e48e9909 13 problem..." type thing).
fc185d95
GKH
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
e48e9909
JJ
16 security issue, or some "oh, that's not good" issue. In short, something
17 critical.
8191e0d9
MG
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.
79cd80a1 24 - New device IDs and quirks are also accepted.
e48e9909
JJ
25 - No "theoretical race condition" issues, unless an explanation of how the
26 race can be exploited is also provided.
84eb8d06 27 - It cannot contain any "trivial" fixes in it (spelling changes,
e48e9909 28 whitespace cleanups, etc).
dca22a63 29 - It must follow the
8c27ceff 30 :ref:`Documentation/process/submitting-patches.rst <submittingpatches>`
dca22a63 31 rules.
959fb1c5 32 - It or an equivalent fix must already exist in Linus' tree (upstream).
fc185d95
GKH
33
34
5fe270a4
MCC
35Procedure for submitting patches to the -stable tree
36----------------------------------------------------
fc185d95 37
b76fc285
DC
38 - If the patch covers files in net/ or drivers/net please follow netdev stable
39 submission guidelines as described in
287f4fa9 40 :ref:`Documentation/networking/netdev-FAQ.rst <netdev-FAQ>`
a41e8f25
GKH
41 after first checking the stable networking queue at
42 https://patchwork.ozlabs.org/bundle/davem/stable/?series=&submitter=&state=*&q=&archive=
43 to ensure the requested patch is not already queued up.
5de61e7a 44 - Security patches should not be handled (solely) by the -stable review
dca22a63 45 process but should follow the procedures in
8c27ceff 46 :ref:`Documentation/admin-guide/security-bugs.rst <securitybugs>`.
5de61e7a 47
5fe270a4
MCC
48For all other submissions, choose one of the following procedures
49-----------------------------------------------------------------
5de61e7a 50
5fe270a4
MCC
51.. _option_1:
52
53Option 1
54********
55
56To have the patch automatically included in the stable tree, add the tag
57
58.. code-block:: none
5de61e7a 59
5fa22429 60 Cc: stable@vger.kernel.org
5de61e7a 61
5fe270a4
MCC
62in the sign-off area. Once the patch is merged it will be applied to
63the stable tree without anything else needing to be done by the author
64or subsystem maintainer.
65
66.. _option_2:
5de61e7a 67
5fe270a4
MCC
68Option 2
69********
5de61e7a 70
5fe270a4
MCC
71After the patch has been merged to Linus' tree, send an email to
72stable@vger.kernel.org containing the subject of the patch, the commit ID,
73why you think it should be applied, and what kernel version you wish it to
74be applied to.
5de61e7a 75
5fe270a4 76.. _option_3:
5de61e7a 77
5fe270a4
MCC
78Option 3
79********
bde1b294 80
5fe270a4
MCC
81Send the patch, after verifying that it follows the above rules, to
82stable@vger.kernel.org. You must note the upstream commit ID in the
83changelog of your submission, as well as the kernel version you wish
84it to be applied to.
85
86:ref:`option_1` is **strongly** preferred, is the easiest and most common.
87:ref:`option_2` and :ref:`option_3` are more useful if the patch isn't deemed
88worthy at the time it is applied to a public git tree (for instance, because
89it deserves more regression testing first). :ref:`option_3` is especially
90useful if the patch needs some special handling to apply to an older kernel
91(e.g., if API's have changed in the meantime).
92
93Note that for :ref:`option_3`, if the patch deviates from the original
94upstream patch (for example because it had to be backported) this must be very
95clearly documented and justified in the patch description.
bde1b294
CD
96
97The upstream commit ID must be specified with a separate line above the commit
98text, like this:
99
5fe270a4
MCC
100.. code-block:: none
101
bde1b294 102 commit <sha1> upstream.
5de61e7a 103
b04c11c9
FV
104Additionally, some patches submitted via :ref:`option_1` may have additional
105patch prerequisites which can be cherry-picked. This can be specified in the
106following format in the sign-off area:
8e9b9362 107
5fe270a4
MCC
108.. code-block:: none
109
2584f521
PG
110 Cc: <stable@vger.kernel.org> # 3.3.x: a1f84a3: sched: Check for idle
111 Cc: <stable@vger.kernel.org> # 3.3.x: 1b9508f: sched: Rate-limit newidle
112 Cc: <stable@vger.kernel.org> # 3.3.x: fd21073: sched: Fix affinity logic
113 Cc: <stable@vger.kernel.org> # 3.3.x
5fe270a4
MCC
114 Signed-off-by: Ingo Molnar <mingo@elte.hu>
115
116The tag sequence has the meaning of:
117
118.. code-block:: none
8e9b9362 119
8e9b9362
SAS
120 git cherry-pick a1f84a3
121 git cherry-pick 1b9508f
122 git cherry-pick fd21073
123 git cherry-pick <this commit>
124
fdc81b79
DD
125Also, some patches may have kernel version prerequisites. This can be
126specified in the following format in the sign-off area:
127
5fe270a4
MCC
128.. code-block:: none
129
cf903e9d 130 Cc: <stable@vger.kernel.org> # 3.3.x
fdc81b79 131
5fe270a4
MCC
132The tag has the meaning of:
133
134.. code-block:: none
135
fdc81b79
DD
136 git cherry-pick <this commit>
137
5fe270a4 138For each "-stable" tree starting with the specified version.
fdc81b79 139
5de61e7a
BN
140Following the submission:
141
e48e9909
JJ
142 - The sender will receive an ACK when the patch has been accepted into the
143 queue, or a NAK if the patch is rejected. This response might take a few
144 days, according to the developer's schedules.
145 - If accepted, the patch will be added to the -stable queue, for review by
46cdf871 146 other developers and by the relevant subsystem maintainer.
fc185d95
GKH
147
148
5fe270a4
MCC
149Review cycle
150------------
fc185d95 151
e48e9909
JJ
152 - When the -stable maintainers decide for a review cycle, the patches will be
153 sent to the review committee, and the maintainer of the affected area of
154 the patch (unless the submitter is the maintainer of the area) and CC: to
155 the linux-kernel mailing list.
156 - The review committee has 48 hours in which to ACK or NAK the patch.
fc185d95 157 - If the patch is rejected by a member of the committee, or linux-kernel
e48e9909
JJ
158 members object to the patch, bringing up issues that the maintainers and
159 members did not realize, the patch will be dropped from the queue.
160 - At the end of the review cycle, the ACKed patches will be added to the
161 latest -stable release, and a new -stable release will happen.
162 - Security patches will be accepted into the -stable tree directly from the
163 security kernel team, and not go through the normal review cycle.
fc185d95
GKH
164 Contact the kernel security team for more details on this procedure.
165
5fe270a4
MCC
166Trees
167-----
2584f521
PG
168
169 - The queues of patches, for both completed versions and in progress
170 versions can be found at:
5fe270a4 171
c1aa3871 172 https://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git
5fe270a4 173
2584f521
PG
174 - The finalized and tagged releases of all stable kernels can be found
175 in separate branches per version at:
5fe270a4 176
c1aa3871 177 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
2584f521 178
fc185d95 179
5fe270a4
MCC
180Review committee
181----------------
fc185d95 182
e48e9909
JJ
183 - This is made up of a number of kernel developers who have volunteered for
184 this task, and a few that haven't.