Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

docs: update the development process document

Here's a set of changes updating Documentation/development-process. I have
update kernel releases and relevant statistics, added information for a
couple of tools, zapped some trailing white space, and generally tried to
make it more closely match the current state of affairs.

[Typo fixes from Joe Perches and Nicolas Kaiser incorporated]

Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Acked-by: Greg KH <greg@kroah.com>
Cc: Randy Dunlap <rdunlap@xenotime.net>

+163 -124
+9 -9
Documentation/development-process/1.Intro
··· 56 56 57 57 1.2: WHAT THIS DOCUMENT IS ABOUT 58 58 59 - The Linux kernel, at over 6 million lines of code and well over 1000 active 60 - contributors, is one of the largest and most active free software projects 61 - in existence. Since its humble beginning in 1991, this kernel has evolved 62 - into a best-of-breed operating system component which runs on pocket-sized 63 - digital music players, desktop PCs, the largest supercomputers in 64 - existence, and all types of systems in between. It is a robust, efficient, 65 - and scalable solution for almost any situation. 59 + The Linux kernel, at over 8 million lines of code and well over 1000 60 + contributors to each release, is one of the largest and most active free 61 + software projects in existence. Since its humble beginning in 1991, this 62 + kernel has evolved into a best-of-breed operating system component which 63 + runs on pocket-sized digital music players, desktop PCs, the largest 64 + supercomputers in existence, and all types of systems in between. It is a 65 + robust, efficient, and scalable solution for almost any situation. 66 66 67 67 With the growth of Linux has come an increase in the number of developers 68 68 (and companies) wishing to participate in its development. Hardware ··· 115 115 improved by comments from Johannes Berg, James Berry, Alex Chiang, Roland 116 116 Dreier, Randy Dunlap, Jake Edge, Jiri Kosina, Matt Mackall, Arthur Marsh, 117 117 Amanda McPherson, Andrew Morton, Andrew Price, Tsugikazu Shibata, and 118 - Jochen Voß. 118 + Jochen Voß. 119 119 120 120 This work was supported by the Linux Foundation; thanks especially to 121 121 Amanda McPherson, who saw the value of this effort and made it all happen. ··· 221 221 - Everything that was said above about code review applies doubly to 222 222 closed-source code. Since this code is not available at all, it cannot 223 223 have been reviewed by the community and will, beyond doubt, have serious 224 - problems. 224 + problems. 225 225 226 226 Makers of embedded systems, in particular, may be tempted to disregard much 227 227 of what has been said in this section in the belief that they are shipping
+84 -85
Documentation/development-process/2.Process
··· 14 14 major kernel release happening every two or three months. The recent 15 15 release history looks like this: 16 16 17 - 2.6.26 July 13, 2008 18 - 2.6.25 April 16, 2008 19 - 2.6.24 January 24, 2008 20 - 2.6.23 October 9, 2007 21 - 2.6.22 July 8, 2007 22 - 2.6.21 April 25, 2007 23 - 2.6.20 February 4, 2007 17 + 2.6.38 March 14, 2011 18 + 2.6.37 January 4, 2011 19 + 2.6.36 October 20, 2010 20 + 2.6.35 August 1, 2010 21 + 2.6.34 May 15, 2010 22 + 2.6.33 February 24, 2010 24 23 25 24 Every 2.6.x release is a major kernel release with new features, internal 26 - API changes, and more. A typical 2.6 release can contain over 10,000 25 + API changes, and more. A typical 2.6 release can contain nearly 10,000 27 26 changesets with changes to several hundred thousand lines of code. 2.6 is 28 27 thus the leading edge of Linux kernel development; the kernel uses a 29 28 rolling development model which is continually integrating major changes. ··· 41 42 and staged ahead of time. How that process works will be described in 42 43 detail later on). 43 44 44 - The merge window lasts for two weeks. At the end of this time, Linus 45 - Torvalds will declare that the window is closed and release the first of 46 - the "rc" kernels. For the kernel which is destined to be 2.6.26, for 47 - example, the release which happens at the end of the merge window will be 48 - called 2.6.26-rc1. The -rc1 release is the signal that the time to merge 49 - new features has passed, and that the time to stabilize the next kernel has 50 - begun. 45 + The merge window lasts for approximately two weeks. At the end of this 46 + time, Linus Torvalds will declare that the window is closed and release the 47 + first of the "rc" kernels. For the kernel which is destined to be 2.6.40, 48 + for example, the release which happens at the end of the merge window will 49 + be called 2.6.40-rc1. The -rc1 release is the signal that the time to 50 + merge new features has passed, and that the time to stabilize the next 51 + kernel has begun. 51 52 52 53 Over the next six to ten weeks, only patches which fix problems should be 53 54 submitted to the mainline. On occasion a more significant change will be ··· 65 66 considered to be sufficiently stable and the final 2.6.x release is made. 66 67 At that point the whole process starts over again. 67 68 68 - As an example, here is how the 2.6.25 development cycle went (all dates in 69 - 2008): 69 + As an example, here is how the 2.6.38 development cycle went (all dates in 70 + 2011): 70 71 71 - January 24 2.6.24 stable release 72 - February 10 2.6.25-rc1, merge window closes 73 - February 15 2.6.25-rc2 74 - February 24 2.6.25-rc3 75 - March 4 2.6.25-rc4 76 - March 9 2.6.25-rc5 77 - March 16 2.6.25-rc6 78 - March 25 2.6.25-rc7 79 - April 1 2.6.25-rc8 80 - April 11 2.6.25-rc9 81 - April 16 2.6.25 stable release 72 + January 4 2.6.37 stable release 73 + January 18 2.6.38-rc1, merge window closes 74 + January 21 2.6.38-rc2 75 + February 1 2.6.38-rc3 76 + February 7 2.6.38-rc4 77 + February 15 2.6.38-rc5 78 + February 21 2.6.38-rc6 79 + March 1 2.6.38-rc7 80 + March 7 2.6.38-rc8 81 + March 14 2.6.38 stable release 82 82 83 83 How do the developers decide when to close the development cycle and create 84 84 the stable release? The most significant metric used is the list of ··· 85 87 break systems which worked in the past are considered to be especially 86 88 serious. For this reason, patches which cause regressions are looked upon 87 89 unfavorably and are quite likely to be reverted during the stabilization 88 - period. 90 + period. 89 91 90 92 The developers' goal is to fix all known regressions before the stable 91 93 release is made. In the real world, this kind of perfection is hard to ··· 97 99 of them are serious. 98 100 99 101 Once a stable release is made, its ongoing maintenance is passed off to the 100 - "stable team," currently comprised of Greg Kroah-Hartman and Chris Wright. 101 - The stable team will release occasional updates to the stable release using 102 - the 2.6.x.y numbering scheme. To be considered for an update release, a 103 - patch must (1) fix a significant bug, and (2) already be merged into the 104 - mainline for the next development kernel. Continuing our 2.6.25 example, 105 - the history (as of this writing) is: 102 + "stable team," currently consisting of Greg Kroah-Hartman. The stable team 103 + will release occasional updates to the stable release using the 2.6.x.y 104 + numbering scheme. To be considered for an update release, a patch must (1) 105 + fix a significant bug, and (2) already be merged into the mainline for the 106 + next development kernel. Kernels will typically receive stable updates for 107 + a little more than one development cycle past their initial release. So, 108 + for example, the 2.6.36 kernel's history looked like: 106 109 107 - May 1 2.6.25.1 108 - May 6 2.6.25.2 109 - May 9 2.6.25.3 110 - May 15 2.6.25.4 111 - June 7 2.6.25.5 112 - June 9 2.6.25.6 113 - June 16 2.6.25.7 114 - June 21 2.6.25.8 115 - June 24 2.6.25.9 110 + October 10 2.6.36 stable release 111 + November 22 2.6.36.1 112 + December 9 2.6.36.2 113 + January 7 2.6.36.3 114 + February 17 2.6.36.4 116 115 117 - Stable updates for a given kernel are made for approximately six months; 118 - after that, the maintenance of stable releases is solely the responsibility 119 - of the distributors which have shipped that particular kernel. 116 + 2.6.36.4 was the final stable update for the 2.6.36 release. 117 + 118 + Some kernels are designated "long term" kernels; they will receive support 119 + for a longer period. As of this writing, the current long term kernels 120 + and their maintainers are: 121 + 122 + 2.6.27 Willy Tarreau (Deep-frozen stable kernel) 123 + 2.6.32 Greg Kroah-Hartman 124 + 2.6.35 Andi Kleen (Embedded flag kernel) 125 + 126 + The selection of a kernel for long-term support is purely a matter of a 127 + maintainer having the need and the time to maintain that release. There 128 + are no known plans for long-term support for any specific upcoming 129 + release. 120 130 121 131 122 132 2.2: THE LIFECYCLE OF A PATCH ··· 136 130 This process can happen quickly for minor fixes, or, in the case of large 137 131 and controversial changes, go on for years. Much developer frustration 138 132 comes from a lack of understanding of this process or from attempts to 139 - circumvent it. 133 + circumvent it. 140 134 141 135 In the hopes of reducing that frustration, this document will describe how 142 136 a patch gets into the kernel. What follows below is an introduction which ··· 199 193 2.3: HOW PATCHES GET INTO THE KERNEL 200 194 201 195 There is exactly one person who can merge patches into the mainline kernel 202 - repository: Linus Torvalds. But, of the over 12,000 patches which went 203 - into the 2.6.25 kernel, only 250 (around 2%) were directly chosen by Linus 196 + repository: Linus Torvalds. But, of the over 9,500 patches which went 197 + into the 2.6.38 kernel, only 112 (around 1.3%) were directly chosen by Linus 204 198 himself. The kernel project has long since grown to a size where no single 205 199 developer could possibly inspect and select every patch unassisted. The 206 200 way the kernel developers have addressed this growth is through the use of ··· 235 229 etc. This chain of repositories can be arbitrarily long, though it rarely 236 230 exceeds two or three links. Since each maintainer in the chain trusts 237 231 those managing lower-level trees, this process is known as the "chain of 238 - trust." 232 + trust." 239 233 240 234 Clearly, in a system like this, getting patches into the kernel depends on 241 235 finding the right maintainer. Sending patches directly to Linus is not ··· 260 254 collected for testing and review. The older of these trees, maintained by 261 255 Andrew Morton, is called "-mm" (for memory management, which is how it got 262 256 started). The -mm tree integrates patches from a long list of subsystem 263 - trees; it also has some patches aimed at helping with debugging. 257 + trees; it also has some patches aimed at helping with debugging. 264 258 265 259 Beyond that, -mm contains a significant collection of patches which have 266 260 been selected by Andrew directly. These patches may have been posted on a ··· 270 264 patch into the mainline, it is likely to end up in -mm. Miscellaneous 271 265 patches which accumulate in -mm will eventually either be forwarded on to 272 266 an appropriate subsystem tree or be sent directly to Linus. In a typical 273 - development cycle, approximately 10% of the patches going into the mainline 274 - get there via -mm. 267 + development cycle, approximately 5-10% of the patches going into the 268 + mainline get there via -mm. 275 269 276 270 The current -mm patch is available in the "mmotm" (-mm of the moment) 277 271 directory at: ··· 281 275 Use of the MMOTM tree is likely to be a frustrating experience, though; 282 276 there is a definite chance that it will not even compile. 283 277 284 - The other -next tree, started more recently, is linux-next, maintained by 278 + The primary tree for next-cycle patch merging is linux-next, maintained by 285 279 Stephen Rothwell. The linux-next tree is, by design, a snapshot of what 286 280 the mainline is expected to look like after the next merge window closes. 287 281 Linux-next trees are announced on the linux-kernel and linux-next mailing ··· 293 287 294 288 http://linux.f-seidel.de/linux-next/pmwiki/ 295 289 296 - How the linux-next tree will fit into the development process is still 297 - changing. As of this writing, the first full development cycle involving 298 - linux-next (2.6.26) is coming to an end; thus far, it has proved to be a 299 - valuable resource for finding and fixing integration problems before the 300 - beginning of the merge window. See http://lwn.net/Articles/287155/ for 301 - more information on how linux-next has worked to set up the 2.6.27 merge 302 - window. 290 + Linux-next has become an integral part of the kernel development process; 291 + all patches merged during a given merge window should really have found 292 + their way into linux-next some time before the merge window opens. 303 293 304 - Some developers have begun to suggest that linux-next should be used as the 305 - target for future development as well. The linux-next tree does tend to be 306 - far ahead of the mainline and is more representative of the tree into which 307 - any new work will be merged. The downside to this idea is that the 308 - volatility of linux-next tends to make it a difficult development target. 309 - See http://lwn.net/Articles/289013/ for more information on this topic, and 310 - stay tuned; much is still in flux where linux-next is involved. 311 294 312 295 2.4.1: STAGING TREES 313 296 314 - The kernel source tree now contains the drivers/staging/ directory, where 297 + The kernel source tree contains the drivers/staging/ directory, where 315 298 many sub-directories for drivers or filesystems that are on their way to 316 299 being added to the kernel tree live. They remain in drivers/staging while 317 300 they still need more work; once complete, they can be moved into the ··· 308 313 up to Linux kernel coding or quality standards, but people may want to use 309 314 them and track development. 310 315 311 - Greg Kroah-Hartman currently (as of 2.6.36) maintains the staging tree. 312 - Drivers that still need work are sent to him, with each driver having 313 - its own subdirectory in drivers/staging/. Along with the driver source 314 - files, a TODO file should be present in the directory as well. The TODO 315 - file lists the pending work that the driver needs for acceptance into 316 - the kernel proper, as well as a list of people that should be Cc'd for any 317 - patches to the driver. Staging drivers that don't currently build should 318 - have their config entries depend upon CONFIG_BROKEN. Once they can 319 - be successfully built without outside patches, CONFIG_BROKEN can be removed. 316 + Greg Kroah-Hartman currently maintains the staging tree. Drivers that 317 + still need work are sent to him, with each driver having its own 318 + subdirectory in drivers/staging/. Along with the driver source files, a 319 + TODO file should be present in the directory as well. The TODO file lists 320 + the pending work that the driver needs for acceptance into the kernel 321 + proper, as well as a list of people that should be Cc'd for any patches to 322 + the driver. Current rules require that drivers contributed to staging 323 + must, at a minimum, compile properly. 324 + 325 + Staging can be a relatively easy way to get new drivers into the mainline 326 + where, with luck, they will come to the attention of other developers and 327 + improve quickly. Entry into staging is not the end of the story, though; 328 + code in staging which is not seeing regular progress will eventually be 329 + removed. Distributors also tend to be relatively reluctant to enable 330 + staging drivers. So staging is, at best, a stop on the way toward becoming 331 + a proper mainline driver. 332 + 320 333 321 334 2.5: TOOLS 322 335 ··· 350 347 351 348 http://git-scm.com/ 352 349 353 - That page has pointers to documentation and tutorials. One should be 354 - aware, in particular, of the Kernel Hacker's Guide to git, which has 355 - information specific to kernel development: 356 - 357 - http://linux.yyz.us/git-howto.html 350 + That page has pointers to documentation and tutorials. 358 351 359 352 Among the kernel developers who do not use git, the most popular choice is 360 353 almost certainly Mercurial: ··· 407 408 important to filter on both the topic of interest (though note that 408 409 long-running conversations can drift away from the original subject 409 410 without changing the email subject line) and the people who are 410 - participating. 411 + participating. 411 412 412 413 - Do not feed the trolls. If somebody is trying to stir up an angry 413 414 response, ignore them.
+24 -7
Documentation/development-process/3.Early-stage
··· 110 110 111 111 - The AppArmor security module made use of internal virtual filesystem 112 112 data structures in ways which were considered to be unsafe and 113 - unreliable. This code has since been significantly reworked, but 114 - remains outside of the mainline. 113 + unreliable. This concern (among others) kept AppArmor out of the 114 + mainline for years. 115 115 116 116 In each of these cases, a great deal of pain and extra work could have been 117 117 avoided with some early discussion with the kernel developers. ··· 138 138 patches. Those are the people who will be best placed to help with a new 139 139 development project. 140 140 141 + The task of finding the right maintainer is sometimes challenging enough 142 + that the kernel developers have added a script to ease the process: 143 + 144 + .../scripts/get_maintainer.pl 145 + 146 + This script will return the current maintainer(s) for a given file or 147 + directory when given the "-f" option. If passed a patch on the 148 + command line, it will list the maintainers who should probably receive 149 + copies of the patch. There are a number of options regulating how hard 150 + get_maintainer.pl will search for maintainers; please be careful about 151 + using the more aggressive options as you may end up including developers 152 + who have no real interest in the code you are modifying. 153 + 141 154 If all else fails, talking to Andrew Morton can be an effective way to 142 155 track down a maintainer for a specific piece of code. 143 156 ··· 168 155 matter is (1) kernel developers tend to be busy, (2) there is no shortage 169 156 of people with grand plans and little code (or even prospect of code) to 170 157 back them up, and (3) nobody is obligated to review or comment on ideas 171 - posted by others. If a request-for-comments posting yields little in the 172 - way of comments, do not assume that it means there is no interest in the 173 - project. Unfortunately, you also cannot assume that there are no problems 174 - with your idea. The best thing to do in this situation is to proceed, 175 - keeping the community informed as you go. 158 + posted by others. Beyond that, high-level designs often hide problems 159 + which are only reviewed when somebody actually tries to implement those 160 + designs; for that reason, kernel developers would rather see the code. 161 + 162 + If a request-for-comments posting yields little in the way of comments, do 163 + not assume that it means there is no interest in the project. 164 + Unfortunately, you also cannot assume that there are no problems with your 165 + idea. The best thing to do in this situation is to proceed, keeping the 166 + community informed as you go. 176 167 177 168 178 169 3.5: GETTING OFFICIAL BUY-IN
+18 -3
Documentation/development-process/4.Coding
··· 131 131 often does not apply to contemporary hardware. Space *is* time, in that a 132 132 larger program will run slower than one which is more compact. 133 133 134 + More recent compilers take an increasingly active role in deciding whether 135 + a given function should actually be inlined or not. So the liberal 136 + placement of "inline" keywords may not just be excessive; it could also be 137 + irrelevant. 138 + 134 139 135 140 * Locking 136 141 ··· 290 285 distributor does not package it); it can then be run on the code by adding 291 286 "C=1" to your make command. 292 287 288 + The "Coccinelle" tool (http://coccinelle.lip6.fr/) is able to find a wide 289 + variety of potential coding problems; it can also propose fixes for those 290 + problems. Quite a few "semantic patches" for the kernel have been packaged 291 + under the scripts/coccinelle directory; running "make coccicheck" will run 292 + through those semantic patches and report on any problems found. See 293 + Documentation/coccinelle.txt for more information. 294 + 293 295 Other kinds of portability errors are best found by compiling your code for 294 296 other architectures. If you do not happen to have an S/390 system or a 295 297 Blackfin development board handy, you can still perform the compilation ··· 320 308 changelog. Log entries should describe the problem being solved, the form 321 309 of the solution, the people who worked on the patch, any relevant 322 310 effects on performance, and anything else that might be needed to 323 - understand the patch. 311 + understand the patch. Be sure that the changelog says *why* the patch is 312 + worth applying; a surprising number of developers fail to provide that 313 + information. 324 314 325 315 Any code which adds a new user-space interface - including new sysfs or 326 316 /proc files - should include documentation of that interface which enables ··· 335 321 appropriate entries to this file. 336 322 337 323 Any new configuration options must be accompanied by help text which 338 - clearly explains the options and when the user might want to select them. 324 + clearly explains the options and when the user might want to select them. 339 325 340 326 Internal API information for many subsystems is documented by way of 341 327 specially-formatted comments; these comments can be extracted and formatted ··· 386 372 lead to literally hundreds or thousands of changes - many of which are 387 373 likely to conflict with work being done by other developers. Needless to 388 374 say, this can be a large job, so it is best to be sure that the 389 - justification is solid. 375 + justification is solid. Note that the Coccinelle tool can help with 376 + wide-ranging API changes. 390 377 391 378 When making an incompatible API change, one should, whenever possible, 392 379 ensure that code which has not been updated is caught by the compiler.
+16 -12
Documentation/development-process/5.Posting
··· 60 60 61 61 Patches must be prepared against a specific version of the kernel. As a 62 62 general rule, a patch should be based on the current mainline as found in 63 - Linus's git tree. It may become necessary to make versions against -mm, 64 - linux-next, or a subsystem tree, though, to facilitate wider testing and 65 - review. Depending on the area of your patch and what is going on 66 - elsewhere, basing a patch against these other trees can require a 67 - significant amount of work resolving conflicts and dealing with API 68 - changes. 63 + Linus's git tree. When basing on mainline, start with a well-known release 64 + point - a stable or -rc release - rather than branching off the mainline at 65 + an arbitrary spot. 66 + 67 + It may become necessary to make versions against -mm, linux-next, or a 68 + subsystem tree, though, to facilitate wider testing and review. Depending 69 + on the area of your patch and what is going on elsewhere, basing a patch 70 + against these other trees can require a significant amount of work 71 + resolving conflicts and dealing with API changes. 69 72 70 73 Only the most simple changes should be formatted as a single patch; 71 74 everything else should be made as a logical series of changes. Splitting ··· 103 100 result is a broken kernel, you will make life harder for developers and 104 101 users who are engaging in the noble work of tracking down problems. 105 102 106 - - Do not overdo it, though. One developer recently posted a set of edits 103 + - Do not overdo it, though. One developer once posted a set of edits 107 104 to a single file as 500 separate patches - an act which did not make him 108 105 the most popular person on the kernel mailing list. A single patch can 109 106 be reasonably large as long as it still contains a single *logical* 110 - change. 107 + change. 111 108 112 109 - It can be tempting to add a whole new infrastructure with a series of 113 110 patches, but to leave that infrastructure unused until the final patch ··· 165 162 for the change as well as possible given the one-line constraint. The 166 163 detailed description can then amplify on those topics and provide any 167 164 needed additional information. If the patch fixes a bug, cite the commit 168 - which introduced the bug if possible. If a problem is associated with 165 + which introduced the bug if possible (and please provide both the commit ID 166 + and the title when citing commits). If a problem is associated with 169 167 specific log or compiler output, include that output to help others 170 168 searching for a solution to the same problem. If the change is meant to 171 169 support other changes coming in later patch, say so. If internal APIs are ··· 234 230 which have had gratuitous white-space changes or line wrapping performed 235 231 by the mail client will not apply at the other end, and often will not 236 232 be examined in any detail. If there is any doubt at all, mail the patch 237 - to yourself and convince yourself that it shows up intact. 233 + to yourself and convince yourself that it shows up intact. 238 234 239 235 Documentation/email-clients.txt has some helpful hints on making 240 236 specific mail clients work for sending patches. ··· 291 287 292 288 where "nn" is the ordinal number of the patch, "mm" is the total number of 293 289 patches in the series, and "subsys" is the name of the affected subsystem. 294 - Clearly, nn/mm can be omitted for a single, standalone patch. 290 + Clearly, nn/mm can be omitted for a single, standalone patch. 295 291 296 292 If you have a significant series of patches, it is customary to send an 297 293 introductory description as part zero. This convention is not universally ··· 303 299 sent as a reply to the first part so that they all thread together at the 304 300 receiving end. Tools like git and quilt have commands to mail out a set of 305 301 patches with the proper threading. If you have a long series, though, and 306 - are using git, please provide the --no-chain-reply-to option to avoid 302 + are using git, please stay away from the --chain-reply-to option to avoid 307 303 creating exceptionally deep nesting.
+10 -6
Documentation/development-process/6.Followthrough
··· 66 66 that you don't realize that something is fundamentally wrong or, perhaps, 67 67 you're not even solving the right problem. 68 68 69 + Andrew Morton has suggested that every review comment which does not result 70 + in a code change should result in an additional code comment instead; that 71 + can help future reviewers avoid the questions which came up the first time 72 + around. 73 + 69 74 One fatal mistake is to ignore review comments in the hope that they will 70 75 go away. They will not go away. If you repost code without having 71 76 responded to the comments you got the time before, you're likely to find ··· 105 100 subsystem to the next; each maintainer has his or her own way of doing 106 101 things. In particular, there may be more than one tree - one, perhaps, 107 102 dedicated to patches planned for the next merge window, and another for 108 - longer-term work. 103 + longer-term work. 109 104 110 105 For patches applying to areas for which there is no obvious subsystem tree 111 106 (memory management patches, for example), the default tree often ends up ··· 114 109 115 110 Inclusion into a subsystem tree can bring a higher level of visibility to a 116 111 patch. Now other developers working with that tree will get the patch by 117 - default. Subsystem trees typically feed into -mm and linux-next as well, 118 - making their contents visible to the development community as a whole. At 119 - this point, there's a good chance that you will get more comments from a 120 - new set of reviewers; these comments need to be answered as in the previous 121 - round. 112 + default. Subsystem trees typically feed linux-next as well, making their 113 + contents visible to the development community as a whole. At this point, 114 + there's a good chance that you will get more comments from a new set of 115 + reviewers; these comments need to be answered as in the previous round. 122 116 123 117 What may also happen at this point, depending on the nature of your patch, 124 118 is that conflicts with work being done by others turn up. In the worst
+2 -2
Documentation/development-process/7.AdvancedTopics
··· 119 119 to trust things *without* then having to go and check every 120 120 individual change by hand. 121 121 122 - (http://lwn.net/Articles/224135/). 122 + (http://lwn.net/Articles/224135/). 123 123 124 124 To avoid this kind of situation, ensure that all patches within a given 125 125 branch stick closely to the associated topic; a "driver fixes" branch ··· 138 138 your tree is, what branch to pull, and what changes will result from the 139 139 pull. The git request-pull command can be helpful in this regard; it will 140 140 format the request as other developers expect, and will also check to be 141 - sure that you have remembered to push those changes to the public server. 141 + sure that you have remembered to push those changes to the public server. 142 142 143 143 144 144 7.2: REVIEWING PATCHES