Mauro Carvalho Chehab | 609d99a | 2016-09-19 08:07:56 -0300 | [diff] [blame] | 1 | .. _stable_kernel_rules: |
| 2 | |
Mauro Carvalho Chehab | 5fe270a | 2016-09-19 08:07:51 -0300 | [diff] [blame] | 3 | Everything you ever wanted to know about Linux -stable releases |
| 4 | =============================================================== |
Greg KH | fc185d9 | 2005-07-29 12:14:34 -0700 | [diff] [blame] | 5 | |
Jesper Juhl | e48e990 | 2006-01-09 20:53:59 -0800 | [diff] [blame] | 6 | Rules on what kind of patches are accepted, and which ones are not, into the |
| 7 | "-stable" tree: |
Greg KH | fc185d9 | 2005-07-29 12:14:34 -0700 | [diff] [blame] | 8 | |
| 9 | - It must be obviously correct and tested. |
Matt LaPlante | 84eb8d0 | 2006-10-03 22:53:09 +0200 | [diff] [blame] | 10 | - It cannot be bigger than 100 lines, with context. |
Greg KH | fc185d9 | 2005-07-29 12:14:34 -0700 | [diff] [blame] | 11 | - It must fix only one thing. |
| 12 | - It must fix a real bug that bothers people (not a, "This could be a |
Jesper Juhl | e48e990 | 2006-01-09 20:53:59 -0800 | [diff] [blame] | 13 | problem..." type thing). |
Greg KH | fc185d9 | 2005-07-29 12:14:34 -0700 | [diff] [blame] | 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 |
Jesper Juhl | e48e990 | 2006-01-09 20:53:59 -0800 | [diff] [blame] | 16 | security issue, or some "oh, that's not good" issue. In short, something |
| 17 | critical. |
Mel Gorman | 8191e0d | 2012-06-21 11:36:50 +0100 | [diff] [blame] | 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. |
Josh Boyer | 79cd80a | 2008-10-24 10:10:42 -0400 | [diff] [blame] | 24 | - New device IDs and quirks are also accepted. |
Jesper Juhl | e48e990 | 2006-01-09 20:53:59 -0800 | [diff] [blame] | 25 | - No "theoretical race condition" issues, unless an explanation of how the |
| 26 | race can be exploited is also provided. |
Matt LaPlante | 84eb8d0 | 2006-10-03 22:53:09 +0200 | [diff] [blame] | 27 | - It cannot contain any "trivial" fixes in it (spelling changes, |
Jesper Juhl | e48e990 | 2006-01-09 20:53:59 -0800 | [diff] [blame] | 28 | whitespace cleanups, etc). |
Mauro Carvalho Chehab | dca22a6 | 2016-09-21 08:51:05 -0300 | [diff] [blame] | 29 | - It must follow the |
Mauro Carvalho Chehab | 8c27ceff3 | 2016-10-18 10:12:27 -0200 | [diff] [blame] | 30 | :ref:`Documentation/process/submitting-patches.rst <submittingpatches>` |
Mauro Carvalho Chehab | dca22a6 | 2016-09-21 08:51:05 -0300 | [diff] [blame] | 31 | rules. |
Stefan Richter | 959fb1c | 2010-04-01 22:01:52 +0200 | [diff] [blame] | 32 | - It or an equivalent fix must already exist in Linus' tree (upstream). |
Greg KH | fc185d9 | 2005-07-29 12:14:34 -0700 | [diff] [blame] | 33 | |
| 34 | |
Mauro Carvalho Chehab | 5fe270a | 2016-09-19 08:07:51 -0300 | [diff] [blame] | 35 | Procedure for submitting patches to the -stable tree |
| 36 | ---------------------------------------------------- |
Greg KH | fc185d9 | 2005-07-29 12:14:34 -0700 | [diff] [blame] | 37 | |
Brian Norris | 5de61e7 | 2014-12-18 14:55:53 -0800 | [diff] [blame] | 38 | - Security patches should not be handled (solely) by the -stable review |
Mauro Carvalho Chehab | dca22a6 | 2016-09-21 08:51:05 -0300 | [diff] [blame] | 39 | process but should follow the procedures in |
Mauro Carvalho Chehab | 8c27ceff3 | 2016-10-18 10:12:27 -0200 | [diff] [blame] | 40 | :ref:`Documentation/admin-guide/security-bugs.rst <securitybugs>`. |
Brian Norris | 5de61e7 | 2014-12-18 14:55:53 -0800 | [diff] [blame] | 41 | |
Mauro Carvalho Chehab | 5fe270a | 2016-09-19 08:07:51 -0300 | [diff] [blame] | 42 | For all other submissions, choose one of the following procedures |
| 43 | ----------------------------------------------------------------- |
Brian Norris | 5de61e7 | 2014-12-18 14:55:53 -0800 | [diff] [blame] | 44 | |
Mauro Carvalho Chehab | 5fe270a | 2016-09-19 08:07:51 -0300 | [diff] [blame] | 45 | .. _option_1: |
Brian Norris | 5de61e7 | 2014-12-18 14:55:53 -0800 | [diff] [blame] | 46 | |
Mauro Carvalho Chehab | 5fe270a | 2016-09-19 08:07:51 -0300 | [diff] [blame] | 47 | Option 1 |
| 48 | ******** |
| 49 | |
| 50 | To have the patch automatically included in the stable tree, add the tag |
| 51 | |
| 52 | .. code-block:: none |
| 53 | |
Josh Boyer | 5fa2242 | 2011-10-17 21:16:39 -0400 | [diff] [blame] | 54 | Cc: stable@vger.kernel.org |
Brian Norris | 5de61e7 | 2014-12-18 14:55:53 -0800 | [diff] [blame] | 55 | |
Mauro Carvalho Chehab | 5fe270a | 2016-09-19 08:07:51 -0300 | [diff] [blame] | 56 | in the sign-off area. Once the patch is merged it will be applied to |
| 57 | the stable tree without anything else needing to be done by the author |
| 58 | or subsystem maintainer. |
Brian Norris | 5de61e7 | 2014-12-18 14:55:53 -0800 | [diff] [blame] | 59 | |
Mauro Carvalho Chehab | 5fe270a | 2016-09-19 08:07:51 -0300 | [diff] [blame] | 60 | .. _option_2: |
Brian Norris | 5de61e7 | 2014-12-18 14:55:53 -0800 | [diff] [blame] | 61 | |
Mauro Carvalho Chehab | 5fe270a | 2016-09-19 08:07:51 -0300 | [diff] [blame] | 62 | Option 2 |
| 63 | ******** |
Brian Norris | 5de61e7 | 2014-12-18 14:55:53 -0800 | [diff] [blame] | 64 | |
Mauro Carvalho Chehab | 5fe270a | 2016-09-19 08:07:51 -0300 | [diff] [blame] | 65 | After the patch has been merged to Linus' tree, send an email to |
| 66 | stable@vger.kernel.org containing the subject of the patch, the commit ID, |
| 67 | why you think it should be applied, and what kernel version you wish it to |
| 68 | be applied to. |
Brian Norris | 5de61e7 | 2014-12-18 14:55:53 -0800 | [diff] [blame] | 69 | |
Mauro Carvalho Chehab | 5fe270a | 2016-09-19 08:07:51 -0300 | [diff] [blame] | 70 | .. _option_3: |
Christoffer Dall | bde1b29 | 2015-05-13 22:01:07 +0200 | [diff] [blame] | 71 | |
Mauro Carvalho Chehab | 5fe270a | 2016-09-19 08:07:51 -0300 | [diff] [blame] | 72 | Option 3 |
| 73 | ******** |
| 74 | |
| 75 | Send the patch, after verifying that it follows the above rules, to |
| 76 | stable@vger.kernel.org. You must note the upstream commit ID in the |
| 77 | changelog of your submission, as well as the kernel version you wish |
| 78 | it to be applied to. |
| 79 | |
| 80 | :ref:`option_1` is **strongly** preferred, is the easiest and most common. |
| 81 | :ref:`option_2` and :ref:`option_3` are more useful if the patch isn't deemed |
| 82 | worthy at the time it is applied to a public git tree (for instance, because |
| 83 | it deserves more regression testing first). :ref:`option_3` is especially |
| 84 | useful if the patch needs some special handling to apply to an older kernel |
| 85 | (e.g., if API's have changed in the meantime). |
| 86 | |
| 87 | Note that for :ref:`option_3`, if the patch deviates from the original |
| 88 | upstream patch (for example because it had to be backported) this must be very |
| 89 | clearly documented and justified in the patch description. |
Christoffer Dall | bde1b29 | 2015-05-13 22:01:07 +0200 | [diff] [blame] | 90 | |
| 91 | The upstream commit ID must be specified with a separate line above the commit |
| 92 | text, like this: |
| 93 | |
Mauro Carvalho Chehab | 5fe270a | 2016-09-19 08:07:51 -0300 | [diff] [blame] | 94 | .. code-block:: none |
| 95 | |
Christoffer Dall | bde1b29 | 2015-05-13 22:01:07 +0200 | [diff] [blame] | 96 | commit <sha1> upstream. |
Brian Norris | 5de61e7 | 2014-12-18 14:55:53 -0800 | [diff] [blame] | 97 | |
Federico Vaga | b04c11c | 2019-01-20 12:16:29 +0100 | [diff] [blame] | 98 | Additionally, some patches submitted via :ref:`option_1` may have additional |
| 99 | patch prerequisites which can be cherry-picked. This can be specified in the |
| 100 | following format in the sign-off area: |
Sebastian Andrzej Siewior | 8e9b936 | 2009-12-06 12:24:31 +0100 | [diff] [blame] | 101 | |
Mauro Carvalho Chehab | 5fe270a | 2016-09-19 08:07:51 -0300 | [diff] [blame] | 102 | .. code-block:: none |
| 103 | |
Paul Gortmaker | 2584f52 | 2012-06-05 11:15:50 -0400 | [diff] [blame] | 104 | Cc: <stable@vger.kernel.org> # 3.3.x: a1f84a3: sched: Check for idle |
| 105 | Cc: <stable@vger.kernel.org> # 3.3.x: 1b9508f: sched: Rate-limit newidle |
| 106 | Cc: <stable@vger.kernel.org> # 3.3.x: fd21073: sched: Fix affinity logic |
| 107 | Cc: <stable@vger.kernel.org> # 3.3.x |
Mauro Carvalho Chehab | 5fe270a | 2016-09-19 08:07:51 -0300 | [diff] [blame] | 108 | Signed-off-by: Ingo Molnar <mingo@elte.hu> |
Sebastian Andrzej Siewior | 8e9b936 | 2009-12-06 12:24:31 +0100 | [diff] [blame] | 109 | |
Mauro Carvalho Chehab | 5fe270a | 2016-09-19 08:07:51 -0300 | [diff] [blame] | 110 | The tag sequence has the meaning of: |
| 111 | |
| 112 | .. code-block:: none |
| 113 | |
Sebastian Andrzej Siewior | 8e9b936 | 2009-12-06 12:24:31 +0100 | [diff] [blame] | 114 | git cherry-pick a1f84a3 |
| 115 | git cherry-pick 1b9508f |
| 116 | git cherry-pick fd21073 |
| 117 | git cherry-pick <this commit> |
| 118 | |
David Daney | fdc81b7 | 2015-03-26 10:09:08 -0700 | [diff] [blame] | 119 | Also, some patches may have kernel version prerequisites. This can be |
| 120 | specified in the following format in the sign-off area: |
| 121 | |
Mauro Carvalho Chehab | 5fe270a | 2016-09-19 08:07:51 -0300 | [diff] [blame] | 122 | .. code-block:: none |
| 123 | |
Johan Hovold | cf903e9 | 2017-04-03 15:53:34 +0200 | [diff] [blame] | 124 | Cc: <stable@vger.kernel.org> # 3.3.x |
David Daney | fdc81b7 | 2015-03-26 10:09:08 -0700 | [diff] [blame] | 125 | |
Mauro Carvalho Chehab | 5fe270a | 2016-09-19 08:07:51 -0300 | [diff] [blame] | 126 | The tag has the meaning of: |
| 127 | |
| 128 | .. code-block:: none |
| 129 | |
David Daney | fdc81b7 | 2015-03-26 10:09:08 -0700 | [diff] [blame] | 130 | git cherry-pick <this commit> |
| 131 | |
Mauro Carvalho Chehab | 5fe270a | 2016-09-19 08:07:51 -0300 | [diff] [blame] | 132 | For each "-stable" tree starting with the specified version. |
David Daney | fdc81b7 | 2015-03-26 10:09:08 -0700 | [diff] [blame] | 133 | |
Brian Norris | 5de61e7 | 2014-12-18 14:55:53 -0800 | [diff] [blame] | 134 | Following the submission: |
| 135 | |
Jesper Juhl | e48e990 | 2006-01-09 20:53:59 -0800 | [diff] [blame] | 136 | - The sender will receive an ACK when the patch has been accepted into the |
| 137 | queue, or a NAK if the patch is rejected. This response might take a few |
| 138 | days, according to the developer's schedules. |
| 139 | - If accepted, the patch will be added to the -stable queue, for review by |
Stefan Richter | 46cdf871 | 2008-02-08 23:26:02 +0100 | [diff] [blame] | 140 | other developers and by the relevant subsystem maintainer. |
Greg KH | fc185d9 | 2005-07-29 12:14:34 -0700 | [diff] [blame] | 141 | |
| 142 | |
Mauro Carvalho Chehab | 5fe270a | 2016-09-19 08:07:51 -0300 | [diff] [blame] | 143 | Review cycle |
| 144 | ------------ |
Greg KH | fc185d9 | 2005-07-29 12:14:34 -0700 | [diff] [blame] | 145 | |
Jesper Juhl | e48e990 | 2006-01-09 20:53:59 -0800 | [diff] [blame] | 146 | - When the -stable maintainers decide for a review cycle, the patches will be |
| 147 | sent to the review committee, and the maintainer of the affected area of |
| 148 | the patch (unless the submitter is the maintainer of the area) and CC: to |
| 149 | the linux-kernel mailing list. |
| 150 | - The review committee has 48 hours in which to ACK or NAK the patch. |
Greg KH | fc185d9 | 2005-07-29 12:14:34 -0700 | [diff] [blame] | 151 | - If the patch is rejected by a member of the committee, or linux-kernel |
Jesper Juhl | e48e990 | 2006-01-09 20:53:59 -0800 | [diff] [blame] | 152 | members object to the patch, bringing up issues that the maintainers and |
| 153 | members did not realize, the patch will be dropped from the queue. |
| 154 | - At the end of the review cycle, the ACKed patches will be added to the |
| 155 | latest -stable release, and a new -stable release will happen. |
| 156 | - Security patches will be accepted into the -stable tree directly from the |
| 157 | security kernel team, and not go through the normal review cycle. |
Greg KH | fc185d9 | 2005-07-29 12:14:34 -0700 | [diff] [blame] | 158 | Contact the kernel security team for more details on this procedure. |
| 159 | |
Mauro Carvalho Chehab | 5fe270a | 2016-09-19 08:07:51 -0300 | [diff] [blame] | 160 | Trees |
| 161 | ----- |
Paul Gortmaker | 2584f52 | 2012-06-05 11:15:50 -0400 | [diff] [blame] | 162 | |
| 163 | - The queues of patches, for both completed versions and in progress |
| 164 | versions can be found at: |
Mauro Carvalho Chehab | 5fe270a | 2016-09-19 08:07:51 -0300 | [diff] [blame] | 165 | |
Andrii Bordunov | c1aa387 | 2017-08-13 23:43:43 +0300 | [diff] [blame] | 166 | https://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git |
Mauro Carvalho Chehab | 5fe270a | 2016-09-19 08:07:51 -0300 | [diff] [blame] | 167 | |
Paul Gortmaker | 2584f52 | 2012-06-05 11:15:50 -0400 | [diff] [blame] | 168 | - The finalized and tagged releases of all stable kernels can be found |
| 169 | in separate branches per version at: |
Mauro Carvalho Chehab | 5fe270a | 2016-09-19 08:07:51 -0300 | [diff] [blame] | 170 | |
Andrii Bordunov | c1aa387 | 2017-08-13 23:43:43 +0300 | [diff] [blame] | 171 | https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git |
Paul Gortmaker | 2584f52 | 2012-06-05 11:15:50 -0400 | [diff] [blame] | 172 | |
Greg KH | fc185d9 | 2005-07-29 12:14:34 -0700 | [diff] [blame] | 173 | |
Mauro Carvalho Chehab | 5fe270a | 2016-09-19 08:07:51 -0300 | [diff] [blame] | 174 | Review committee |
| 175 | ---------------- |
Greg KH | fc185d9 | 2005-07-29 12:14:34 -0700 | [diff] [blame] | 176 | |
Jesper Juhl | e48e990 | 2006-01-09 20:53:59 -0800 | [diff] [blame] | 177 | - This is made up of a number of kernel developers who have volunteered for |
| 178 | this task, and a few that haven't. |