~ [ 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.9.337)


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

~ [ 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