]>
Commit | Line | Data |
---|---|---|
1 | Everything you ever wanted to know about Linux -stable releases. | |
2 | ||
3 | Rules on what kind of patches are accepted, and which ones are not, into the | |
4 | "-stable" tree: | |
5 | ||
6 | - It must be obviously correct and tested. | |
7 | - It cannot be bigger than 100 lines, with context. | |
8 | - It must fix only one thing. | |
9 | - It must fix a real bug that bothers people (not a, "This could be a | |
10 | problem..." type thing). | |
11 | - It must fix a problem that causes a build error (but not for things | |
12 | marked CONFIG_BROKEN), an oops, a hang, data corruption, a real | |
13 | security issue, or some "oh, that's not good" issue. In short, something | |
14 | critical. | |
15 | - Serious issues as reported by a user of a distribution kernel may also | |
16 | be considered if they fix a notable performance or interactivity issue. | |
17 | As these fixes are not as obvious and have a higher risk of a subtle | |
18 | regression they should only be submitted by a distribution kernel | |
19 | maintainer and include an addendum linking to a bugzilla entry if it | |
20 | exists and additional information on the user-visible impact. | |
21 | - New device IDs and quirks are also accepted. | |
22 | - No "theoretical race condition" issues, unless an explanation of how the | |
23 | race can be exploited is also provided. | |
24 | - It cannot contain any "trivial" fixes in it (spelling changes, | |
25 | whitespace cleanups, etc). | |
26 | - It must follow the Documentation/SubmittingPatches rules. | |
27 | - It or an equivalent fix must already exist in Linus' tree (upstream). | |
28 | ||
29 | ||
30 | Procedure for submitting patches to the -stable tree: | |
31 | ||
32 | - If the patch covers files in net/ or drivers/net please follow netdev stable | |
33 | submission guidelines as described in | |
34 | Documentation/networking/netdev-FAQ.txt | |
35 | - Security patches should not be handled (solely) by the -stable review | |
36 | process but should follow the procedures in Documentation/SecurityBugs. | |
37 | ||
38 | For all other submissions, choose one of the following procedures: | |
39 | ||
40 | --- Option 1 --- | |
41 | ||
42 | To have the patch automatically included in the stable tree, add the tag | |
43 | Cc: stable@vger.kernel.org | |
44 | in the sign-off area. Once the patch is merged it will be applied to | |
45 | the stable tree without anything else needing to be done by the author | |
46 | or subsystem maintainer. | |
47 | ||
48 | --- Option 2 --- | |
49 | ||
50 | After the patch has been merged to Linus' tree, send an email to | |
51 | stable@vger.kernel.org containing the subject of the patch, the commit ID, | |
52 | why you think it should be applied, and what kernel version you wish it to | |
53 | be applied to. | |
54 | ||
55 | --- Option 3 --- | |
56 | ||
57 | Send the patch, after verifying that it follows the above rules, to | |
58 | stable@vger.kernel.org. You must note the upstream commit ID in the | |
59 | changelog of your submission, as well as the kernel version you wish | |
60 | it to be applied to. | |
61 | ||
62 | Option 1 is *strongly* preferred, is the easiest and most common. Options 2 and | |
63 | 3 are more useful if the patch isn't deemed worthy at the time it is applied to | |
64 | a public git tree (for instance, because it deserves more regression testing | |
65 | first). Option 3 is especially useful if the patch needs some special handling | |
66 | to apply to an older kernel (e.g., if API's have changed in the meantime). | |
67 | ||
68 | Note that for Option 3, if the patch deviates from the original upstream patch | |
69 | (for example because it had to be backported) this must be very clearly | |
70 | documented and justified in the patch description. | |
71 | ||
72 | The upstream commit ID must be specified with a separate line above the commit | |
73 | text, like this: | |
74 | ||
75 | commit <sha1> upstream. | |
76 | ||
77 | Additionally, some patches submitted via Option 1 may have additional patch | |
78 | prerequisites which can be cherry-picked. This can be specified in the following | |
79 | format in the sign-off area: | |
80 | ||
81 | Cc: <stable@vger.kernel.org> # 3.3.x: a1f84a3: sched: Check for idle | |
82 | Cc: <stable@vger.kernel.org> # 3.3.x: 1b9508f: sched: Rate-limit newidle | |
83 | Cc: <stable@vger.kernel.org> # 3.3.x: fd21073: sched: Fix affinity logic | |
84 | Cc: <stable@vger.kernel.org> # 3.3.x | |
85 | Signed-off-by: Ingo Molnar <mingo@elte.hu> | |
86 | ||
87 | The tag sequence has the meaning of: | |
88 | git cherry-pick a1f84a3 | |
89 | git cherry-pick 1b9508f | |
90 | git cherry-pick fd21073 | |
91 | git cherry-pick <this commit> | |
92 | ||
93 | Also, some patches may have kernel version prerequisites. This can be | |
94 | specified in the following format in the sign-off area: | |
95 | ||
96 | Cc: <stable@vger.kernel.org> # 3.3.x- | |
97 | ||
98 | The tag has the meaning of: | |
99 | git cherry-pick <this commit> | |
100 | ||
101 | For each "-stable" tree starting with the specified version. | |
102 | ||
103 | Following the submission: | |
104 | ||
105 | - The sender will receive an ACK when the patch has been accepted into the | |
106 | queue, or a NAK if the patch is rejected. This response might take a few | |
107 | days, according to the developer's schedules. | |
108 | - If accepted, the patch will be added to the -stable queue, for review by | |
109 | other developers and by the relevant subsystem maintainer. | |
110 | ||
111 | ||
112 | Review cycle: | |
113 | ||
114 | - When the -stable maintainers decide for a review cycle, the patches will be | |
115 | sent to the review committee, and the maintainer of the affected area of | |
116 | the patch (unless the submitter is the maintainer of the area) and CC: to | |
117 | the linux-kernel mailing list. | |
118 | - The review committee has 48 hours in which to ACK or NAK the patch. | |
119 | - If the patch is rejected by a member of the committee, or linux-kernel | |
120 | members object to the patch, bringing up issues that the maintainers and | |
121 | members did not realize, the patch will be dropped from the queue. | |
122 | - At the end of the review cycle, the ACKed patches will be added to the | |
123 | latest -stable release, and a new -stable release will happen. | |
124 | - Security patches will be accepted into the -stable tree directly from the | |
125 | security kernel team, and not go through the normal review cycle. | |
126 | Contact the kernel security team for more details on this procedure. | |
127 | ||
128 | Trees: | |
129 | ||
130 | - The queues of patches, for both completed versions and in progress | |
131 | versions can be found at: | |
132 | http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git | |
133 | - The finalized and tagged releases of all stable kernels can be found | |
134 | in separate branches per version at: | |
135 | http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git | |
136 | ||
137 | ||
138 | Review committee: | |
139 | ||
140 | - This is made up of a number of kernel developers who have volunteered for | |
141 | this task, and a few that haven't. |