~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/SubmittingPatches

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/SubmittingPatches (Version linux-6.12-rc7) and /Documentation/SubmittingPatches (Version linux-4.4.302)


  1 This file has moved to process/submitting-patc !!   1 
                                                   >>   2         How to Get Your Change Into the Linux Kernel
                                                   >>   3                 or
                                                   >>   4         Care And Operation Of Your Linus Torvalds
                                                   >>   5 
                                                   >>   6 
                                                   >>   7 
                                                   >>   8 For a person or company who wishes to submit a change to the Linux
                                                   >>   9 kernel, the process can sometimes be daunting if you're not familiar
                                                   >>  10 with "the system."  This text is a collection of suggestions which
                                                   >>  11 can greatly increase the chances of your change being accepted.
                                                   >>  12 
                                                   >>  13 This document contains a large number of suggestions in a relatively terse
                                                   >>  14 format.  For detailed information on how the kernel development process
                                                   >>  15 works, see Documentation/development-process.  Also, read
                                                   >>  16 Documentation/SubmitChecklist for a list of items to check before
                                                   >>  17 submitting code.  If you are submitting a driver, also read
                                                   >>  18 Documentation/SubmittingDrivers; for device tree binding patches, read
                                                   >>  19 Documentation/devicetree/bindings/submitting-patches.txt.
                                                   >>  20 
                                                   >>  21 Many of these steps describe the default behavior of the git version
                                                   >>  22 control system; if you use git to prepare your patches, you'll find much
                                                   >>  23 of the mechanical work done for you, though you'll still need to prepare
                                                   >>  24 and document a sensible set of patches.  In general, use of git will make
                                                   >>  25 your life as a kernel developer easier.
                                                   >>  26 
                                                   >>  27 --------------------------------------------
                                                   >>  28 SECTION 1 - CREATING AND SENDING YOUR CHANGE
                                                   >>  29 --------------------------------------------
                                                   >>  30 
                                                   >>  31 
                                                   >>  32 0) Obtain a current source tree
                                                   >>  33 -------------------------------
                                                   >>  34 
                                                   >>  35 If you do not have a repository with the current kernel source handy, use
                                                   >>  36 git to obtain one.  You'll want to start with the mainline repository,
                                                   >>  37 which can be grabbed with:
                                                   >>  38 
                                                   >>  39   git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
                                                   >>  40 
                                                   >>  41 Note, however, that you may not want to develop against the mainline tree
                                                   >>  42 directly.  Most subsystem maintainers run their own trees and want to see
                                                   >>  43 patches prepared against those trees.  See the "T:" entry for the subsystem
                                                   >>  44 in the MAINTAINERS file to find that tree, or simply ask the maintainer if
                                                   >>  45 the tree is not listed there.
                                                   >>  46 
                                                   >>  47 It is still possible to download kernel releases via tarballs (as described
                                                   >>  48 in the next section), but that is the hard way to do kernel development.
                                                   >>  49 
                                                   >>  50 1) "diff -up"
                                                   >>  51 ------------
                                                   >>  52 
                                                   >>  53 If you must generate your patches by hand, use "diff -up" or "diff -uprN"
                                                   >>  54 to create patches.  Git generates patches in this form by default; if
                                                   >>  55 you're using git, you can skip this section entirely.
                                                   >>  56 
                                                   >>  57 All changes to the Linux kernel occur in the form of patches, as
                                                   >>  58 generated by diff(1).  When creating your patch, make sure to create it
                                                   >>  59 in "unified diff" format, as supplied by the '-u' argument to diff(1).
                                                   >>  60 Also, please use the '-p' argument which shows which C function each
                                                   >>  61 change is in - that makes the resultant diff a lot easier to read.
                                                   >>  62 Patches should be based in the root kernel source directory,
                                                   >>  63 not in any lower subdirectory.
                                                   >>  64 
                                                   >>  65 To create a patch for a single file, it is often sufficient to do:
                                                   >>  66 
                                                   >>  67         SRCTREE= linux
                                                   >>  68         MYFILE=  drivers/net/mydriver.c
                                                   >>  69 
                                                   >>  70         cd $SRCTREE
                                                   >>  71         cp $MYFILE $MYFILE.orig
                                                   >>  72         vi $MYFILE      # make your change
                                                   >>  73         cd ..
                                                   >>  74         diff -up $SRCTREE/$MYFILE{.orig,} > /tmp/patch
                                                   >>  75 
                                                   >>  76 To create a patch for multiple files, you should unpack a "vanilla",
                                                   >>  77 or unmodified kernel source tree, and generate a diff against your
                                                   >>  78 own source tree.  For example:
                                                   >>  79 
                                                   >>  80         MYSRC= /devel/linux
                                                   >>  81 
                                                   >>  82         tar xvfz linux-3.19.tar.gz
                                                   >>  83         mv linux-3.19 linux-3.19-vanilla
                                                   >>  84         diff -uprN -X linux-3.19-vanilla/Documentation/dontdiff \
                                                   >>  85                 linux-3.19-vanilla $MYSRC > /tmp/patch
                                                   >>  86 
                                                   >>  87 "dontdiff" is a list of files which are generated by the kernel during
                                                   >>  88 the build process, and should be ignored in any diff(1)-generated
                                                   >>  89 patch.
                                                   >>  90 
                                                   >>  91 Make sure your patch does not include any extra files which do not
                                                   >>  92 belong in a patch submission.  Make sure to review your patch -after-
                                                   >>  93 generating it with diff(1), to ensure accuracy.
                                                   >>  94 
                                                   >>  95 If your changes produce a lot of deltas, you need to split them into
                                                   >>  96 individual patches which modify things in logical stages; see section
                                                   >>  97 #3.  This will facilitate review by other kernel developers,
                                                   >>  98 very important if you want your patch accepted.
                                                   >>  99 
                                                   >> 100 If you're using git, "git rebase -i" can help you with this process.  If
                                                   >> 101 you're not using git, quilt <http://savannah.nongnu.org/projects/quilt>
                                                   >> 102 is another popular alternative.
                                                   >> 103 
                                                   >> 104 
                                                   >> 105 
                                                   >> 106 2) Describe your changes.
                                                   >> 107 -------------------------
                                                   >> 108 
                                                   >> 109 Describe your problem.  Whether your patch is a one-line bug fix or
                                                   >> 110 5000 lines of a new feature, there must be an underlying problem that
                                                   >> 111 motivated you to do this work.  Convince the reviewer that there is a
                                                   >> 112 problem worth fixing and that it makes sense for them to read past the
                                                   >> 113 first paragraph.
                                                   >> 114 
                                                   >> 115 Describe user-visible impact.  Straight up crashes and lockups are
                                                   >> 116 pretty convincing, but not all bugs are that blatant.  Even if the
                                                   >> 117 problem was spotted during code review, describe the impact you think
                                                   >> 118 it can have on users.  Keep in mind that the majority of Linux
                                                   >> 119 installations run kernels from secondary stable trees or
                                                   >> 120 vendor/product-specific trees that cherry-pick only specific patches
                                                   >> 121 from upstream, so include anything that could help route your change
                                                   >> 122 downstream: provoking circumstances, excerpts from dmesg, crash
                                                   >> 123 descriptions, performance regressions, latency spikes, lockups, etc.
                                                   >> 124 
                                                   >> 125 Quantify optimizations and trade-offs.  If you claim improvements in
                                                   >> 126 performance, memory consumption, stack footprint, or binary size,
                                                   >> 127 include numbers that back them up.  But also describe non-obvious
                                                   >> 128 costs.  Optimizations usually aren't free but trade-offs between CPU,
                                                   >> 129 memory, and readability; or, when it comes to heuristics, between
                                                   >> 130 different workloads.  Describe the expected downsides of your
                                                   >> 131 optimization so that the reviewer can weigh costs against benefits.
                                                   >> 132 
                                                   >> 133 Once the problem is established, describe what you are actually doing
                                                   >> 134 about it in technical detail.  It's important to describe the change
                                                   >> 135 in plain English for the reviewer to verify that the code is behaving
                                                   >> 136 as you intend it to.
                                                   >> 137 
                                                   >> 138 The maintainer will thank you if you write your patch description in a
                                                   >> 139 form which can be easily pulled into Linux's source code management
                                                   >> 140 system, git, as a "commit log".  See #15, below.
                                                   >> 141 
                                                   >> 142 Solve only one problem per patch.  If your description starts to get
                                                   >> 143 long, that's a sign that you probably need to split up your patch.
                                                   >> 144 See #3, next.
                                                   >> 145 
                                                   >> 146 When you submit or resubmit a patch or patch series, include the
                                                   >> 147 complete patch description and justification for it.  Don't just
                                                   >> 148 say that this is version N of the patch (series).  Don't expect the
                                                   >> 149 subsystem maintainer to refer back to earlier patch versions or referenced
                                                   >> 150 URLs to find the patch description and put that into the patch.
                                                   >> 151 I.e., the patch (series) and its description should be self-contained.
                                                   >> 152 This benefits both the maintainers and reviewers.  Some reviewers
                                                   >> 153 probably didn't even receive earlier versions of the patch.
                                                   >> 154 
                                                   >> 155 Describe your changes in imperative mood, e.g. "make xyzzy do frotz"
                                                   >> 156 instead of "[This patch] makes xyzzy do frotz" or "[I] changed xyzzy
                                                   >> 157 to do frotz", as if you are giving orders to the codebase to change
                                                   >> 158 its behaviour.
                                                   >> 159 
                                                   >> 160 If the patch fixes a logged bug entry, refer to that bug entry by
                                                   >> 161 number and URL.  If the patch follows from a mailing list discussion,
                                                   >> 162 give a URL to the mailing list archive; use the https://lkml.kernel.org/
                                                   >> 163 redirector with a Message-Id, to ensure that the links cannot become
                                                   >> 164 stale.
                                                   >> 165 
                                                   >> 166 However, try to make your explanation understandable without external
                                                   >> 167 resources.  In addition to giving a URL to a mailing list archive or
                                                   >> 168 bug, summarize the relevant points of the discussion that led to the
                                                   >> 169 patch as submitted.
                                                   >> 170 
                                                   >> 171 If you want to refer to a specific commit, don't just refer to the
                                                   >> 172 SHA-1 ID of the commit. Please also include the oneline summary of
                                                   >> 173 the commit, to make it easier for reviewers to know what it is about.
                                                   >> 174 Example:
                                                   >> 175 
                                                   >> 176         Commit e21d2170f36602ae2708 ("video: remove unnecessary
                                                   >> 177         platform_set_drvdata()") removed the unnecessary
                                                   >> 178         platform_set_drvdata(), but left the variable "dev" unused,
                                                   >> 179         delete it.
                                                   >> 180 
                                                   >> 181 You should also be sure to use at least the first twelve characters of the
                                                   >> 182 SHA-1 ID.  The kernel repository holds a *lot* of objects, making
                                                   >> 183 collisions with shorter IDs a real possibility.  Bear in mind that, even if
                                                   >> 184 there is no collision with your six-character ID now, that condition may
                                                   >> 185 change five years from now.
                                                   >> 186 
                                                   >> 187 If your patch fixes a bug in a specific commit, e.g. you found an issue using
                                                   >> 188 git-bisect, please use the 'Fixes:' tag with the first 12 characters of the
                                                   >> 189 SHA-1 ID, and the one line summary.  For example:
                                                   >> 190 
                                                   >> 191         Fixes: e21d2170f366 ("video: remove unnecessary platform_set_drvdata()")
                                                   >> 192 
                                                   >> 193 The following git-config settings can be used to add a pretty format for
                                                   >> 194 outputting the above style in the git log or git show commands
                                                   >> 195 
                                                   >> 196         [core]
                                                   >> 197                 abbrev = 12
                                                   >> 198         [pretty]
                                                   >> 199                 fixes = Fixes: %h (\"%s\")
                                                   >> 200 
                                                   >> 201 3) Separate your changes.
                                                   >> 202 -------------------------
                                                   >> 203 
                                                   >> 204 Separate each _logical change_ into a separate patch.
                                                   >> 205 
                                                   >> 206 For example, if your changes include both bug fixes and performance
                                                   >> 207 enhancements for a single driver, separate those changes into two
                                                   >> 208 or more patches.  If your changes include an API update, and a new
                                                   >> 209 driver which uses that new API, separate those into two patches.
                                                   >> 210 
                                                   >> 211 On the other hand, if you make a single change to numerous files,
                                                   >> 212 group those changes into a single patch.  Thus a single logical change
                                                   >> 213 is contained within a single patch.
                                                   >> 214 
                                                   >> 215 The point to remember is that each patch should make an easily understood
                                                   >> 216 change that can be verified by reviewers.  Each patch should be justifiable
                                                   >> 217 on its own merits.
                                                   >> 218 
                                                   >> 219 If one patch depends on another patch in order for a change to be
                                                   >> 220 complete, that is OK.  Simply note "this patch depends on patch X"
                                                   >> 221 in your patch description.
                                                   >> 222 
                                                   >> 223 When dividing your change into a series of patches, take special care to
                                                   >> 224 ensure that the kernel builds and runs properly after each patch in the
                                                   >> 225 series.  Developers using "git bisect" to track down a problem can end up
                                                   >> 226 splitting your patch series at any point; they will not thank you if you
                                                   >> 227 introduce bugs in the middle.
                                                   >> 228 
                                                   >> 229 If you cannot condense your patch set into a smaller set of patches,
                                                   >> 230 then only post say 15 or so at a time and wait for review and integration.
                                                   >> 231 
                                                   >> 232 
                                                   >> 233 
                                                   >> 234 4) Style-check your changes.
                                                   >> 235 ----------------------------
                                                   >> 236 
                                                   >> 237 Check your patch for basic style violations, details of which can be
                                                   >> 238 found in Documentation/CodingStyle.  Failure to do so simply wastes
                                                   >> 239 the reviewers time and will get your patch rejected, probably
                                                   >> 240 without even being read.
                                                   >> 241 
                                                   >> 242 One significant exception is when moving code from one file to
                                                   >> 243 another -- in this case you should not modify the moved code at all in
                                                   >> 244 the same patch which moves it.  This clearly delineates the act of
                                                   >> 245 moving the code and your changes.  This greatly aids review of the
                                                   >> 246 actual differences and allows tools to better track the history of
                                                   >> 247 the code itself.
                                                   >> 248 
                                                   >> 249 Check your patches with the patch style checker prior to submission
                                                   >> 250 (scripts/checkpatch.pl).  Note, though, that the style checker should be
                                                   >> 251 viewed as a guide, not as a replacement for human judgment.  If your code
                                                   >> 252 looks better with a violation then its probably best left alone.
                                                   >> 253 
                                                   >> 254 The checker reports at three levels:
                                                   >> 255  - ERROR: things that are very likely to be wrong
                                                   >> 256  - WARNING: things requiring careful review
                                                   >> 257  - CHECK: things requiring thought
                                                   >> 258 
                                                   >> 259 You should be able to justify all violations that remain in your
                                                   >> 260 patch.
                                                   >> 261 
                                                   >> 262 
                                                   >> 263 5) Select the recipients for your patch.
                                                   >> 264 ----------------------------------------
                                                   >> 265 
                                                   >> 266 You should always copy the appropriate subsystem maintainer(s) on any patch
                                                   >> 267 to code that they maintain; look through the MAINTAINERS file and the
                                                   >> 268 source code revision history to see who those maintainers are.  The
                                                   >> 269 script scripts/get_maintainer.pl can be very useful at this step.  If you
                                                   >> 270 cannot find a maintainer for the subsystem you are working on, Andrew
                                                   >> 271 Morton (akpm@linux-foundation.org) serves as a maintainer of last resort.
                                                   >> 272 
                                                   >> 273 You should also normally choose at least one mailing list to receive a copy
                                                   >> 274 of your patch set.  linux-kernel@vger.kernel.org functions as a list of
                                                   >> 275 last resort, but the volume on that list has caused a number of developers
                                                   >> 276 to tune it out.  Look in the MAINTAINERS file for a subsystem-specific
                                                   >> 277 list; your patch will probably get more attention there.  Please do not
                                                   >> 278 spam unrelated lists, though.
                                                   >> 279 
                                                   >> 280 Many kernel-related lists are hosted on vger.kernel.org; you can find a
                                                   >> 281 list of them at http://vger.kernel.org/vger-lists.html.  There are
                                                   >> 282 kernel-related lists hosted elsewhere as well, though.
                                                   >> 283 
                                                   >> 284 Do not send more than 15 patches at once to the vger mailing lists!!!
                                                   >> 285 
                                                   >> 286 Linus Torvalds is the final arbiter of all changes accepted into the
                                                   >> 287 Linux kernel.  His e-mail address is <torvalds@linux-foundation.org>.
                                                   >> 288 He gets a lot of e-mail, and, at this point, very few patches go through
                                                   >> 289 Linus directly, so typically you should do your best to -avoid-
                                                   >> 290 sending him e-mail.
                                                   >> 291 
                                                   >> 292 If you have a patch that fixes an exploitable security bug, send that patch
                                                   >> 293 to security@kernel.org.  For severe bugs, a short embargo may be considered
                                                   >> 294 to allow distributors to get the patch out to users; in such cases,
                                                   >> 295 obviously, the patch should not be sent to any public lists.
                                                   >> 296 
                                                   >> 297 Patches that fix a severe bug in a released kernel should be directed
                                                   >> 298 toward the stable maintainers by putting a line like this:
                                                   >> 299 
                                                   >> 300   Cc: stable@vger.kernel.org
                                                   >> 301 
                                                   >> 302 into the sign-off area of your patch (note, NOT an email recipient).  You
                                                   >> 303 should also read Documentation/stable_kernel_rules.txt in addition to this
                                                   >> 304 file.
                                                   >> 305 
                                                   >> 306 Note, however, that some subsystem maintainers want to come to their own
                                                   >> 307 conclusions on which patches should go to the stable trees.  The networking
                                                   >> 308 maintainer, in particular, would rather not see individual developers
                                                   >> 309 adding lines like the above to their patches.
                                                   >> 310 
                                                   >> 311 If changes affect userland-kernel interfaces, please send the MAN-PAGES
                                                   >> 312 maintainer (as listed in the MAINTAINERS file) a man-pages patch, or at
                                                   >> 313 least a notification of the change, so that some information makes its way
                                                   >> 314 into the manual pages.  User-space API changes should also be copied to
                                                   >> 315 linux-api@vger.kernel.org. 
                                                   >> 316 
                                                   >> 317 For small patches you may want to CC the Trivial Patch Monkey
                                                   >> 318 trivial@kernel.org which collects "trivial" patches. Have a look
                                                   >> 319 into the MAINTAINERS file for its current manager.
                                                   >> 320 Trivial patches must qualify for one of the following rules:
                                                   >> 321  Spelling fixes in documentation
                                                   >> 322  Spelling fixes for errors which could break grep(1)
                                                   >> 323  Warning fixes (cluttering with useless warnings is bad)
                                                   >> 324  Compilation fixes (only if they are actually correct)
                                                   >> 325  Runtime fixes (only if they actually fix things)
                                                   >> 326  Removing use of deprecated functions/macros
                                                   >> 327  Contact detail and documentation fixes
                                                   >> 328  Non-portable code replaced by portable code (even in arch-specific,
                                                   >> 329  since people copy, as long as it's trivial)
                                                   >> 330  Any fix by the author/maintainer of the file (ie. patch monkey
                                                   >> 331  in re-transmission mode)
                                                   >> 332 
                                                   >> 333 
                                                   >> 334 
                                                   >> 335 6) No MIME, no links, no compression, no attachments.  Just plain text.
                                                   >> 336 -----------------------------------------------------------------------
                                                   >> 337 
                                                   >> 338 Linus and other kernel developers need to be able to read and comment
                                                   >> 339 on the changes you are submitting.  It is important for a kernel
                                                   >> 340 developer to be able to "quote" your changes, using standard e-mail
                                                   >> 341 tools, so that they may comment on specific portions of your code.
                                                   >> 342 
                                                   >> 343 For this reason, all patches should be submitted by e-mail "inline".
                                                   >> 344 WARNING:  Be wary of your editor's word-wrap corrupting your patch,
                                                   >> 345 if you choose to cut-n-paste your patch.
                                                   >> 346 
                                                   >> 347 Do not attach the patch as a MIME attachment, compressed or not.
                                                   >> 348 Many popular e-mail applications will not always transmit a MIME
                                                   >> 349 attachment as plain text, making it impossible to comment on your
                                                   >> 350 code.  A MIME attachment also takes Linus a bit more time to process,
                                                   >> 351 decreasing the likelihood of your MIME-attached change being accepted.
                                                   >> 352 
                                                   >> 353 Exception:  If your mailer is mangling patches then someone may ask
                                                   >> 354 you to re-send them using MIME.
                                                   >> 355 
                                                   >> 356 See Documentation/email-clients.txt for hints about configuring
                                                   >> 357 your e-mail client so that it sends your patches untouched.
                                                   >> 358 
                                                   >> 359 7) E-mail size.
                                                   >> 360 ---------------
                                                   >> 361 
                                                   >> 362 Large changes are not appropriate for mailing lists, and some
                                                   >> 363 maintainers.  If your patch, uncompressed, exceeds 300 kB in size,
                                                   >> 364 it is preferred that you store your patch on an Internet-accessible
                                                   >> 365 server, and provide instead a URL (link) pointing to your patch.  But note
                                                   >> 366 that if your patch exceeds 300 kB, it almost certainly needs to be broken up
                                                   >> 367 anyway.
                                                   >> 368 
                                                   >> 369 8) Respond to review comments.
                                                   >> 370 ------------------------------
                                                   >> 371 
                                                   >> 372 Your patch will almost certainly get comments from reviewers on ways in
                                                   >> 373 which the patch can be improved.  You must respond to those comments;
                                                   >> 374 ignoring reviewers is a good way to get ignored in return.  Review comments
                                                   >> 375 or questions that do not lead to a code change should almost certainly
                                                   >> 376 bring about a comment or changelog entry so that the next reviewer better
                                                   >> 377 understands what is going on.
                                                   >> 378 
                                                   >> 379 Be sure to tell the reviewers what changes you are making and to thank them
                                                   >> 380 for their time.  Code review is a tiring and time-consuming process, and
                                                   >> 381 reviewers sometimes get grumpy.  Even in that case, though, respond
                                                   >> 382 politely and address the problems they have pointed out.
                                                   >> 383 
                                                   >> 384 
                                                   >> 385 9) Don't get discouraged - or impatient.
                                                   >> 386 ----------------------------------------
                                                   >> 387 
                                                   >> 388 After you have submitted your change, be patient and wait.  Reviewers are
                                                   >> 389 busy people and may not get to your patch right away.
                                                   >> 390 
                                                   >> 391 Once upon a time, patches used to disappear into the void without comment,
                                                   >> 392 but the development process works more smoothly than that now.  You should
                                                   >> 393 receive comments within a week or so; if that does not happen, make sure
                                                   >> 394 that you have sent your patches to the right place.  Wait for a minimum of
                                                   >> 395 one week before resubmitting or pinging reviewers - possibly longer during
                                                   >> 396 busy times like merge windows.
                                                   >> 397 
                                                   >> 398 
                                                   >> 399 10) Include PATCH in the subject
                                                   >> 400 --------------------------------
                                                   >> 401 
                                                   >> 402 Due to high e-mail traffic to Linus, and to linux-kernel, it is common
                                                   >> 403 convention to prefix your subject line with [PATCH].  This lets Linus
                                                   >> 404 and other kernel developers more easily distinguish patches from other
                                                   >> 405 e-mail discussions.
                                                   >> 406 
                                                   >> 407 
                                                   >> 408 
                                                   >> 409 11) Sign your work
                                                   >> 410 ------------------
                                                   >> 411 
                                                   >> 412 To improve tracking of who did what, especially with patches that can
                                                   >> 413 percolate to their final resting place in the kernel through several
                                                   >> 414 layers of maintainers, we've introduced a "sign-off" procedure on
                                                   >> 415 patches that are being emailed around.
                                                   >> 416 
                                                   >> 417 The sign-off is a simple line at the end of the explanation for the
                                                   >> 418 patch, which certifies that you wrote it or otherwise have the right to
                                                   >> 419 pass it on as an open-source patch.  The rules are pretty simple: if you
                                                   >> 420 can certify the below:
                                                   >> 421 
                                                   >> 422         Developer's Certificate of Origin 1.1
                                                   >> 423 
                                                   >> 424         By making a contribution to this project, I certify that:
                                                   >> 425 
                                                   >> 426         (a) The contribution was created in whole or in part by me and I
                                                   >> 427             have the right to submit it under the open source license
                                                   >> 428             indicated in the file; or
                                                   >> 429 
                                                   >> 430         (b) The contribution is based upon previous work that, to the best
                                                   >> 431             of my knowledge, is covered under an appropriate open source
                                                   >> 432             license and I have the right under that license to submit that
                                                   >> 433             work with modifications, whether created in whole or in part
                                                   >> 434             by me, under the same open source license (unless I am
                                                   >> 435             permitted to submit under a different license), as indicated
                                                   >> 436             in the file; or
                                                   >> 437 
                                                   >> 438         (c) The contribution was provided directly to me by some other
                                                   >> 439             person who certified (a), (b) or (c) and I have not modified
                                                   >> 440             it.
                                                   >> 441 
                                                   >> 442         (d) I understand and agree that this project and the contribution
                                                   >> 443             are public and that a record of the contribution (including all
                                                   >> 444             personal information I submit with it, including my sign-off) is
                                                   >> 445             maintained indefinitely and may be redistributed consistent with
                                                   >> 446             this project or the open source license(s) involved.
                                                   >> 447 
                                                   >> 448 then you just add a line saying
                                                   >> 449 
                                                   >> 450         Signed-off-by: Random J Developer <random@developer.example.org>
                                                   >> 451 
                                                   >> 452 using your real name (sorry, no pseudonyms or anonymous contributions.)
                                                   >> 453 
                                                   >> 454 Some people also put extra tags at the end.  They'll just be ignored for
                                                   >> 455 now, but you can do this to mark internal company procedures or just
                                                   >> 456 point out some special detail about the sign-off.
                                                   >> 457 
                                                   >> 458 If you are a subsystem or branch maintainer, sometimes you need to slightly
                                                   >> 459 modify patches you receive in order to merge them, because the code is not
                                                   >> 460 exactly the same in your tree and the submitters'. If you stick strictly to
                                                   >> 461 rule (c), you should ask the submitter to rediff, but this is a totally
                                                   >> 462 counter-productive waste of time and energy. Rule (b) allows you to adjust
                                                   >> 463 the code, but then it is very impolite to change one submitter's code and
                                                   >> 464 make him endorse your bugs. To solve this problem, it is recommended that
                                                   >> 465 you add a line between the last Signed-off-by header and yours, indicating
                                                   >> 466 the nature of your changes. While there is nothing mandatory about this, it
                                                   >> 467 seems like prepending the description with your mail and/or name, all
                                                   >> 468 enclosed in square brackets, is noticeable enough to make it obvious that
                                                   >> 469 you are responsible for last-minute changes. Example :
                                                   >> 470 
                                                   >> 471         Signed-off-by: Random J Developer <random@developer.example.org>
                                                   >> 472         [lucky@maintainer.example.org: struct foo moved from foo.c to foo.h]
                                                   >> 473         Signed-off-by: Lucky K Maintainer <lucky@maintainer.example.org>
                                                   >> 474 
                                                   >> 475 This practice is particularly helpful if you maintain a stable branch and
                                                   >> 476 want at the same time to credit the author, track changes, merge the fix,
                                                   >> 477 and protect the submitter from complaints. Note that under no circumstances
                                                   >> 478 can you change the author's identity (the From header), as it is the one
                                                   >> 479 which appears in the changelog.
                                                   >> 480 
                                                   >> 481 Special note to back-porters: It seems to be a common and useful practice
                                                   >> 482 to insert an indication of the origin of a patch at the top of the commit
                                                   >> 483 message (just after the subject line) to facilitate tracking. For instance,
                                                   >> 484 here's what we see in a 3.x-stable release:
                                                   >> 485 
                                                   >> 486 Date:   Tue Oct 7 07:26:38 2014 -0400
                                                   >> 487 
                                                   >> 488     libata: Un-break ATA blacklist
                                                   >> 489 
                                                   >> 490     commit 1c40279960bcd7d52dbdf1d466b20d24b99176c8 upstream.
                                                   >> 491 
                                                   >> 492 And here's what might appear in an older kernel once a patch is backported:
                                                   >> 493 
                                                   >> 494     Date:   Tue May 13 22:12:27 2008 +0200
                                                   >> 495 
                                                   >> 496         wireless, airo: waitbusy() won't delay
                                                   >> 497 
                                                   >> 498         [backport of 2.6 commit b7acbdfbd1f277c1eb23f344f899cfa4cd0bf36a]
                                                   >> 499 
                                                   >> 500 Whatever the format, this information provides a valuable help to people
                                                   >> 501 tracking your trees, and to people trying to troubleshoot bugs in your
                                                   >> 502 tree.
                                                   >> 503 
                                                   >> 504 
                                                   >> 505 12) When to use Acked-by: and Cc:
                                                   >> 506 ---------------------------------
                                                   >> 507 
                                                   >> 508 The Signed-off-by: tag indicates that the signer was involved in the
                                                   >> 509 development of the patch, or that he/she was in the patch's delivery path.
                                                   >> 510 
                                                   >> 511 If a person was not directly involved in the preparation or handling of a
                                                   >> 512 patch but wishes to signify and record their approval of it then they can
                                                   >> 513 ask to have an Acked-by: line added to the patch's changelog.
                                                   >> 514 
                                                   >> 515 Acked-by: is often used by the maintainer of the affected code when that
                                                   >> 516 maintainer neither contributed to nor forwarded the patch.
                                                   >> 517 
                                                   >> 518 Acked-by: is not as formal as Signed-off-by:.  It is a record that the acker
                                                   >> 519 has at least reviewed the patch and has indicated acceptance.  Hence patch
                                                   >> 520 mergers will sometimes manually convert an acker's "yep, looks good to me"
                                                   >> 521 into an Acked-by: (but note that it is usually better to ask for an
                                                   >> 522 explicit ack).
                                                   >> 523 
                                                   >> 524 Acked-by: does not necessarily indicate acknowledgement of the entire patch.
                                                   >> 525 For example, if a patch affects multiple subsystems and has an Acked-by: from
                                                   >> 526 one subsystem maintainer then this usually indicates acknowledgement of just
                                                   >> 527 the part which affects that maintainer's code.  Judgement should be used here.
                                                   >> 528 When in doubt people should refer to the original discussion in the mailing
                                                   >> 529 list archives.
                                                   >> 530 
                                                   >> 531 If a person has had the opportunity to comment on a patch, but has not
                                                   >> 532 provided such comments, you may optionally add a "Cc:" tag to the patch.
                                                   >> 533 This is the only tag which might be added without an explicit action by the
                                                   >> 534 person it names - but it should indicate that this person was copied on the
                                                   >> 535 patch.  This tag documents that potentially interested parties
                                                   >> 536 have been included in the discussion.
                                                   >> 537 
                                                   >> 538 
                                                   >> 539 13) Using Reported-by:, Tested-by:, Reviewed-by:, Suggested-by: and Fixes:
                                                   >> 540 --------------------------------------------------------------------------
                                                   >> 541 
                                                   >> 542 The Reported-by tag gives credit to people who find bugs and report them and it
                                                   >> 543 hopefully inspires them to help us again in the future.  Please note that if
                                                   >> 544 the bug was reported in private, then ask for permission first before using the
                                                   >> 545 Reported-by tag.
                                                   >> 546 
                                                   >> 547 A Tested-by: tag indicates that the patch has been successfully tested (in
                                                   >> 548 some environment) by the person named.  This tag informs maintainers that
                                                   >> 549 some testing has been performed, provides a means to locate testers for
                                                   >> 550 future patches, and ensures credit for the testers.
                                                   >> 551 
                                                   >> 552 Reviewed-by:, instead, indicates that the patch has been reviewed and found
                                                   >> 553 acceptable according to the Reviewer's Statement:
                                                   >> 554 
                                                   >> 555         Reviewer's statement of oversight
                                                   >> 556 
                                                   >> 557         By offering my Reviewed-by: tag, I state that:
                                                   >> 558 
                                                   >> 559          (a) I have carried out a technical review of this patch to
                                                   >> 560              evaluate its appropriateness and readiness for inclusion into
                                                   >> 561              the mainline kernel.
                                                   >> 562 
                                                   >> 563          (b) Any problems, concerns, or questions relating to the patch
                                                   >> 564              have been communicated back to the submitter.  I am satisfied
                                                   >> 565              with the submitter's response to my comments.
                                                   >> 566 
                                                   >> 567          (c) While there may be things that could be improved with this
                                                   >> 568              submission, I believe that it is, at this time, (1) a
                                                   >> 569              worthwhile modification to the kernel, and (2) free of known
                                                   >> 570              issues which would argue against its inclusion.
                                                   >> 571 
                                                   >> 572          (d) While I have reviewed the patch and believe it to be sound, I
                                                   >> 573              do not (unless explicitly stated elsewhere) make any
                                                   >> 574              warranties or guarantees that it will achieve its stated
                                                   >> 575              purpose or function properly in any given situation.
                                                   >> 576 
                                                   >> 577 A Reviewed-by tag is a statement of opinion that the patch is an
                                                   >> 578 appropriate modification of the kernel without any remaining serious
                                                   >> 579 technical issues.  Any interested reviewer (who has done the work) can
                                                   >> 580 offer a Reviewed-by tag for a patch.  This tag serves to give credit to
                                                   >> 581 reviewers and to inform maintainers of the degree of review which has been
                                                   >> 582 done on the patch.  Reviewed-by: tags, when supplied by reviewers known to
                                                   >> 583 understand the subject area and to perform thorough reviews, will normally
                                                   >> 584 increase the likelihood of your patch getting into the kernel.
                                                   >> 585 
                                                   >> 586 A Suggested-by: tag indicates that the patch idea is suggested by the person
                                                   >> 587 named and ensures credit to the person for the idea. Please note that this
                                                   >> 588 tag should not be added without the reporter's permission, especially if the
                                                   >> 589 idea was not posted in a public forum. That said, if we diligently credit our
                                                   >> 590 idea reporters, they will, hopefully, be inspired to help us again in the
                                                   >> 591 future.
                                                   >> 592 
                                                   >> 593 A Fixes: tag indicates that the patch fixes an issue in a previous commit. It
                                                   >> 594 is used to make it easy to determine where a bug originated, which can help
                                                   >> 595 review a bug fix. This tag also assists the stable kernel team in determining
                                                   >> 596 which stable kernel versions should receive your fix. This is the preferred
                                                   >> 597 method for indicating a bug fixed by the patch. See #2 above for more details.
                                                   >> 598 
                                                   >> 599 
                                                   >> 600 14) The canonical patch format
                                                   >> 601 ------------------------------
                                                   >> 602 
                                                   >> 603 This section describes how the patch itself should be formatted.  Note
                                                   >> 604 that, if you have your patches stored in a git repository, proper patch
                                                   >> 605 formatting can be had with "git format-patch".  The tools cannot create
                                                   >> 606 the necessary text, though, so read the instructions below anyway.
                                                   >> 607 
                                                   >> 608 The canonical patch subject line is:
                                                   >> 609 
                                                   >> 610     Subject: [PATCH 001/123] subsystem: summary phrase
                                                   >> 611 
                                                   >> 612 The canonical patch message body contains the following:
                                                   >> 613 
                                                   >> 614   - A "from" line specifying the patch author (only needed if the person
                                                   >> 615     sending the patch is not the author).
                                                   >> 616 
                                                   >> 617   - An empty line.
                                                   >> 618 
                                                   >> 619   - The body of the explanation, line wrapped at 75 columns, which will
                                                   >> 620     be copied to the permanent changelog to describe this patch.
                                                   >> 621 
                                                   >> 622   - The "Signed-off-by:" lines, described above, which will
                                                   >> 623     also go in the changelog.
                                                   >> 624 
                                                   >> 625   - A marker line containing simply "---".
                                                   >> 626 
                                                   >> 627   - Any additional comments not suitable for the changelog.
                                                   >> 628 
                                                   >> 629   - The actual patch (diff output).
                                                   >> 630 
                                                   >> 631 The Subject line format makes it very easy to sort the emails
                                                   >> 632 alphabetically by subject line - pretty much any email reader will
                                                   >> 633 support that - since because the sequence number is zero-padded,
                                                   >> 634 the numerical and alphabetic sort is the same.
                                                   >> 635 
                                                   >> 636 The "subsystem" in the email's Subject should identify which
                                                   >> 637 area or subsystem of the kernel is being patched.
                                                   >> 638 
                                                   >> 639 The "summary phrase" in the email's Subject should concisely
                                                   >> 640 describe the patch which that email contains.  The "summary
                                                   >> 641 phrase" should not be a filename.  Do not use the same "summary
                                                   >> 642 phrase" for every patch in a whole patch series (where a "patch
                                                   >> 643 series" is an ordered sequence of multiple, related patches).
                                                   >> 644 
                                                   >> 645 Bear in mind that the "summary phrase" of your email becomes a
                                                   >> 646 globally-unique identifier for that patch.  It propagates all the way
                                                   >> 647 into the git changelog.  The "summary phrase" may later be used in
                                                   >> 648 developer discussions which refer to the patch.  People will want to
                                                   >> 649 google for the "summary phrase" to read discussion regarding that
                                                   >> 650 patch.  It will also be the only thing that people may quickly see
                                                   >> 651 when, two or three months later, they are going through perhaps
                                                   >> 652 thousands of patches using tools such as "gitk" or "git log
                                                   >> 653 --oneline".
                                                   >> 654 
                                                   >> 655 For these reasons, the "summary" must be no more than 70-75
                                                   >> 656 characters, and it must describe both what the patch changes, as well
                                                   >> 657 as why the patch might be necessary.  It is challenging to be both
                                                   >> 658 succinct and descriptive, but that is what a well-written summary
                                                   >> 659 should do.
                                                   >> 660 
                                                   >> 661 The "summary phrase" may be prefixed by tags enclosed in square
                                                   >> 662 brackets: "Subject: [PATCH <tag>...] <summary phrase>".  The tags are
                                                   >> 663 not considered part of the summary phrase, but describe how the patch
                                                   >> 664 should be treated.  Common tags might include a version descriptor if
                                                   >> 665 the multiple versions of the patch have been sent out in response to
                                                   >> 666 comments (i.e., "v1, v2, v3"), or "RFC" to indicate a request for
                                                   >> 667 comments.  If there are four patches in a patch series the individual
                                                   >> 668 patches may be numbered like this: 1/4, 2/4, 3/4, 4/4.  This assures
                                                   >> 669 that developers understand the order in which the patches should be
                                                   >> 670 applied and that they have reviewed or applied all of the patches in
                                                   >> 671 the patch series.
                                                   >> 672 
                                                   >> 673 A couple of example Subjects:
                                                   >> 674 
                                                   >> 675     Subject: [PATCH 2/5] ext2: improve scalability of bitmap searching
                                                   >> 676     Subject: [PATCH v2 01/27] x86: fix eflags tracking
                                                   >> 677 
                                                   >> 678 The "from" line must be the very first line in the message body,
                                                   >> 679 and has the form:
                                                   >> 680 
                                                   >> 681         From: Original Author <author@example.com>
                                                   >> 682 
                                                   >> 683 The "from" line specifies who will be credited as the author of the
                                                   >> 684 patch in the permanent changelog.  If the "from" line is missing,
                                                   >> 685 then the "From:" line from the email header will be used to determine
                                                   >> 686 the patch author in the changelog.
                                                   >> 687 
                                                   >> 688 The explanation body will be committed to the permanent source
                                                   >> 689 changelog, so should make sense to a competent reader who has long
                                                   >> 690 since forgotten the immediate details of the discussion that might
                                                   >> 691 have led to this patch.  Including symptoms of the failure which the
                                                   >> 692 patch addresses (kernel log messages, oops messages, etc.) is
                                                   >> 693 especially useful for people who might be searching the commit logs
                                                   >> 694 looking for the applicable patch.  If a patch fixes a compile failure,
                                                   >> 695 it may not be necessary to include _all_ of the compile failures; just
                                                   >> 696 enough that it is likely that someone searching for the patch can find
                                                   >> 697 it.  As in the "summary phrase", it is important to be both succinct as
                                                   >> 698 well as descriptive.
                                                   >> 699 
                                                   >> 700 The "---" marker line serves the essential purpose of marking for patch
                                                   >> 701 handling tools where the changelog message ends.
                                                   >> 702 
                                                   >> 703 One good use for the additional comments after the "---" marker is for
                                                   >> 704 a diffstat, to show what files have changed, and the number of
                                                   >> 705 inserted and deleted lines per file.  A diffstat is especially useful
                                                   >> 706 on bigger patches.  Other comments relevant only to the moment or the
                                                   >> 707 maintainer, not suitable for the permanent changelog, should also go
                                                   >> 708 here.  A good example of such comments might be "patch changelogs"
                                                   >> 709 which describe what has changed between the v1 and v2 version of the
                                                   >> 710 patch.
                                                   >> 711 
                                                   >> 712 If you are going to include a diffstat after the "---" marker, please
                                                   >> 713 use diffstat options "-p 1 -w 70" so that filenames are listed from
                                                   >> 714 the top of the kernel source tree and don't use too much horizontal
                                                   >> 715 space (easily fit in 80 columns, maybe with some indentation).  (git
                                                   >> 716 generates appropriate diffstats by default.)
                                                   >> 717 
                                                   >> 718 See more details on the proper patch format in the following
                                                   >> 719 references.
                                                   >> 720 
                                                   >> 721 15) Explicit In-Reply-To headers
                                                   >> 722 --------------------------------
                                                   >> 723 
                                                   >> 724 It can be helpful to manually add In-Reply-To: headers to a patch
                                                   >> 725 (e.g., when using "git send email") to associate the patch with
                                                   >> 726 previous relevant discussion, e.g. to link a bug fix to the email with
                                                   >> 727 the bug report.  However, for a multi-patch series, it is generally
                                                   >> 728 best to avoid using In-Reply-To: to link to older versions of the
                                                   >> 729 series.  This way multiple versions of the patch don't become an
                                                   >> 730 unmanageable forest of references in email clients.  If a link is
                                                   >> 731 helpful, you can use the https://lkml.kernel.org/ redirector (e.g., in
                                                   >> 732 the cover email text) to link to an earlier version of the patch series.
                                                   >> 733 
                                                   >> 734 
                                                   >> 735 16) Sending "git pull" requests
                                                   >> 736 -------------------------------
                                                   >> 737 
                                                   >> 738 If you have a series of patches, it may be most convenient to have the
                                                   >> 739 maintainer pull them directly into the subsystem repository with a
                                                   >> 740 "git pull" operation.  Note, however, that pulling patches from a developer
                                                   >> 741 requires a higher degree of trust than taking patches from a mailing list.
                                                   >> 742 As a result, many subsystem maintainers are reluctant to take pull
                                                   >> 743 requests, especially from new, unknown developers.  If in doubt you can use
                                                   >> 744 the pull request as the cover letter for a normal posting of the patch
                                                   >> 745 series, giving the maintainer the option of using either.
                                                   >> 746 
                                                   >> 747 A pull request should have [GIT] or [PULL] in the subject line.  The
                                                   >> 748 request itself should include the repository name and the branch of
                                                   >> 749 interest on a single line; it should look something like:
                                                   >> 750 
                                                   >> 751   Please pull from
                                                   >> 752 
                                                   >> 753       git://jdelvare.pck.nerim.net/jdelvare-2.6 i2c-for-linus
                                                   >> 754 
                                                   >> 755   to get these changes:
                                                   >> 756 
                                                   >> 757 A pull request should also include an overall message saying what will be
                                                   >> 758 included in the request, a "git shortlog" listing of the patches
                                                   >> 759 themselves, and a diffstat showing the overall effect of the patch series.
                                                   >> 760 The easiest way to get all this information together is, of course, to let
                                                   >> 761 git do it for you with the "git request-pull" command.
                                                   >> 762 
                                                   >> 763 Some maintainers (including Linus) want to see pull requests from signed
                                                   >> 764 commits; that increases their confidence that the request actually came
                                                   >> 765 from you.  Linus, in particular, will not pull from public hosting sites
                                                   >> 766 like GitHub in the absence of a signed tag.
                                                   >> 767 
                                                   >> 768 The first step toward creating such tags is to make a GNUPG key and get it
                                                   >> 769 signed by one or more core kernel developers.  This step can be hard for
                                                   >> 770 new developers, but there is no way around it.  Attending conferences can
                                                   >> 771 be a good way to find developers who can sign your key.
                                                   >> 772 
                                                   >> 773 Once you have prepared a patch series in git that you wish to have somebody
                                                   >> 774 pull, create a signed tag with "git tag -s".  This will create a new tag
                                                   >> 775 identifying the last commit in the series and containing a signature
                                                   >> 776 created with your private key.  You will also have the opportunity to add a
                                                   >> 777 changelog-style message to the tag; this is an ideal place to describe the
                                                   >> 778 effects of the pull request as a whole.
                                                   >> 779 
                                                   >> 780 If the tree the maintainer will be pulling from is not the repository you
                                                   >> 781 are working from, don't forget to push the signed tag explicitly to the
                                                   >> 782 public tree.
                                                   >> 783 
                                                   >> 784 When generating your pull request, use the signed tag as the target.  A
                                                   >> 785 command like this will do the trick:
                                                   >> 786 
                                                   >> 787   git request-pull master git://my.public.tree/linux.git my-signed-tag
                                                   >> 788 
                                                   >> 789 
                                                   >> 790 ----------------------
                                                   >> 791 SECTION 2 - REFERENCES
                                                   >> 792 ----------------------
                                                   >> 793 
                                                   >> 794 Andrew Morton, "The perfect patch" (tpp).
                                                   >> 795   <http://www.ozlabs.org/~akpm/stuff/tpp.txt>
                                                   >> 796 
                                                   >> 797 Jeff Garzik, "Linux kernel patch submission format".
                                                   >> 798   <http://linux.yyz.us/patch-format.html>
                                                   >> 799 
                                                   >> 800 Greg Kroah-Hartman, "How to piss off a kernel subsystem maintainer".
                                                   >> 801   <http://www.kroah.com/log/linux/maintainer.html>
                                                   >> 802   <http://www.kroah.com/log/linux/maintainer-02.html>
                                                   >> 803   <http://www.kroah.com/log/linux/maintainer-03.html>
                                                   >> 804   <http://www.kroah.com/log/linux/maintainer-04.html>
                                                   >> 805   <http://www.kroah.com/log/linux/maintainer-05.html>
                                                   >> 806   <http://www.kroah.com/log/linux/maintainer-06.html>
                                                   >> 807 
                                                   >> 808 NO!!!! No more huge patch bombs to linux-kernel@vger.kernel.org people!
                                                   >> 809   <https://lkml.org/lkml/2005/7/11/336>
                                                   >> 810 
                                                   >> 811 Kernel Documentation/CodingStyle:
                                                   >> 812   <Documentation/CodingStyle>
                                                   >> 813 
                                                   >> 814 Linus Torvalds's mail on the canonical patch format:
                                                   >> 815   <http://lkml.org/lkml/2005/4/7/183>
                                                   >> 816 
                                                   >> 817 Andi Kleen, "On submitting kernel patches"
                                                   >> 818   Some strategies to get difficult or controversial changes in.
                                                   >> 819   http://halobates.de/on-submitting-patches.pdf
                                                   >> 820 
                                                   >> 821 --
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php