Merge branch 'master' of /pub/scm/linux/kernel/git/torvalds/linux-2.6
[deliverable/linux.git] / Documentation / SubmitChecklist
CommitLineData
8b7ecb11 1Linux Kernel patch submission checklist
915a56d2
RD
2~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3
e54695a5
AM
4Here are some basic things that developers should do if they want to see their
5kernel patch submissions accepted more quickly.
915a56d2 6
e54695a5
AM
7These are all above and beyond the documentation that is provided in
8Documentation/SubmittingPatches and elsewhere regarding submitting Linux
9kernel patches.
915a56d2
RD
10
11
e54695a5
AM
121: Builds cleanly with applicable or modified CONFIG options =y, =m, and
13 =n. No gcc warnings/errors, no linker warnings/errors.
915a56d2 14
e54695a5 152: Passes allnoconfig, allmodconfig
915a56d2 16
e54695a5
AM
173: Builds on multiple CPU architectures by using local cross-compile tools
18 or something like PLM at OSDL.
915a56d2 19
e54695a5
AM
204: ppc64 is a good architecture for cross-compilation checking because it
21 tends to use `unsigned long' for 64-bit quantities.
915a56d2 22
df24d9a6
BF
235: Check your patch for general style as detailed in
24 Documentation/CodingStyle. Check for trivial violations with the
25 patch style checker prior to submission (scripts/checkpatch.pl).
26 You should be able to justify all violations that remain in
27 your patch.
915a56d2 28
e54695a5 296: Any new or modified CONFIG options don't muck up the config menu.
915a56d2 30
e54695a5 317: All new Kconfig options have help text.
915a56d2 32
e54695a5
AM
338: Has been carefully reviewed with respect to relevant Kconfig
34 combinations. This is very hard to get right with testing -- brainpower
35 pays off here.
915a56d2 36
e54695a5 379: Check cleanly with sparse.
915a56d2 38
e54695a5
AM
3910: Use 'make checkstack' and 'make namespacecheck' and fix any problems
40 that they find. Note: checkstack does not point out problems explicitly,
41 but any one function that uses more than 512 bytes on the stack is a
42 candidate for change.
915a56d2 43
e54695a5
AM
4411: Include kernel-doc to document global kernel APIs. (Not required for
45 static functions, but OK there also.) Use 'make htmldocs' or 'make
46 mandocs' to check the kernel-doc and fix any issues.
915a56d2 47
e54695a5
AM
4812: Has been tested with CONFIG_PREEMPT, CONFIG_DEBUG_PREEMPT,
49 CONFIG_DEBUG_SLAB, CONFIG_DEBUG_PAGEALLOC, CONFIG_DEBUG_MUTEXES,
50 CONFIG_DEBUG_SPINLOCK, CONFIG_DEBUG_SPINLOCK_SLEEP all simultaneously
51 enabled.
915a56d2 52
e54695a5
AM
5313: Has been build- and runtime tested with and without CONFIG_SMP and
54 CONFIG_PREEMPT.
915a56d2 55
e54695a5
AM
5614: If the patch affects IO/Disk, etc: has been tested with and without
57 CONFIG_LBD.
915a56d2 58
e54695a5 5915: All codepaths have been exercised with all lockdep features enabled.
915a56d2 60
e54695a5
AM
6116: All new /proc entries are documented under Documentation/
62
6317: All new kernel boot parameters are documented in
64 Documentation/kernel-parameters.txt.
65
6618: All new module parameters are documented with MODULE_PARM_DESC()
1a036cdd
RD
67
6819: All new userspace interfaces are documented in Documentation/ABI/.
69 See Documentation/ABI/README for more information.
ce584f91
AM
70
7120: Check that it all passes `make headers_check'.
0dd4e5b8
AM
72
7321: Has been checked with injection of at least slab and page-allocation
80abe55b 74 failures. See Documentation/fault-injection/.
0dd4e5b8
AM
75
76 If the new code is substantial, addition of subsystem-specific fault
77 injection might be appropriate.
a517b9f9 78
98091696
AM
7922: Newly-added code has been compiled with `gcc -W' (use "make
80 EXTRA_CFLAGS=-W"). This will generate lots of noise, but is good for
81 finding bugs like "warning: comparison between signed and unsigned".
244474b2
RD
82
8323: Tested after it has been merged into the -mm patchset to make sure
84 that it still works with all of the other queued patches and various
85 changes in the VM, VFS, and other subsystems.
This page took 0.179041 seconds and 5 git commands to generate.