add a trivial patch style checker
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / Documentation / SubmitChecklist
CommitLineData
915a56d2
RD
1Linux Kernel patch sumbittal checklist
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
12
e54695a5
AM
131: Builds cleanly with applicable or modified CONFIG options =y, =m, and
14 =n. No gcc warnings/errors, no linker warnings/errors.
915a56d2 15
e54695a5 162: Passes allnoconfig, allmodconfig
915a56d2 17
e54695a5
AM
183: Builds on multiple CPU architectures by using local cross-compile tools
19 or something like PLM at OSDL.
915a56d2 20
e54695a5
AM
214: ppc64 is a good architecture for cross-compilation checking because it
22 tends to use `unsigned long' for 64-bit quantities.
915a56d2 23
e54695a5 245: Matches kernel coding style(!)
915a56d2 25
e54695a5 266: Any new or modified CONFIG options don't muck up the config menu.
915a56d2 27
e54695a5 287: All new Kconfig options have help text.
915a56d2 29
e54695a5
AM
308: Has been carefully reviewed with respect to relevant Kconfig
31 combinations. This is very hard to get right with testing -- brainpower
32 pays off here.
915a56d2 33
e54695a5 349: Check cleanly with sparse.
915a56d2 35
e54695a5
AM
3610: Use 'make checkstack' and 'make namespacecheck' and fix any problems
37 that they find. Note: checkstack does not point out problems explicitly,
38 but any one function that uses more than 512 bytes on the stack is a
39 candidate for change.
915a56d2 40
e54695a5
AM
4111: Include kernel-doc to document global kernel APIs. (Not required for
42 static functions, but OK there also.) Use 'make htmldocs' or 'make
43 mandocs' to check the kernel-doc and fix any issues.
915a56d2 44
e54695a5
AM
4512: Has been tested with CONFIG_PREEMPT, CONFIG_DEBUG_PREEMPT,
46 CONFIG_DEBUG_SLAB, CONFIG_DEBUG_PAGEALLOC, CONFIG_DEBUG_MUTEXES,
47 CONFIG_DEBUG_SPINLOCK, CONFIG_DEBUG_SPINLOCK_SLEEP all simultaneously
48 enabled.
915a56d2 49
e54695a5
AM
5013: Has been build- and runtime tested with and without CONFIG_SMP and
51 CONFIG_PREEMPT.
915a56d2 52
e54695a5
AM
5314: If the patch affects IO/Disk, etc: has been tested with and without
54 CONFIG_LBD.
915a56d2 55
e54695a5 5615: All codepaths have been exercised with all lockdep features enabled.
915a56d2 57
e54695a5
AM
5816: All new /proc entries are documented under Documentation/
59
6017: All new kernel boot parameters are documented in
61 Documentation/kernel-parameters.txt.
62
6318: All new module parameters are documented with MODULE_PARM_DESC()
1a036cdd
RD
64
6519: All new userspace interfaces are documented in Documentation/ABI/.
66 See Documentation/ABI/README for more information.
ce584f91
AM
67
6820: Check that it all passes `make headers_check'.
0dd4e5b8
AM
69
7021: Has been checked with injection of at least slab and page-allocation
71 fauilures. See Documentation/fault-injection/.
72
73 If the new code is substantial, addition of subsystem-specific fault
74 injection might be appropriate.
a517b9f9 75
98091696
AM
7622: Newly-added code has been compiled with `gcc -W' (use "make
77 EXTRA_CFLAGS=-W"). This will generate lots of noise, but is good for
78 finding bugs like "warning: comparison between signed and unsigned".
244474b2
RD
79
8023: Tested after it has been merged into the -mm patchset to make sure
81 that it still works with all of the other queued patches and various
82 changes in the VM, VFS, and other subsystems.
4d355632
RD
83
8424: Avoid whitespace damage such as indenting with spaces or whitespace
85 at the end of lines. You can test this by feeding the patch to
86 "git apply --check --whitespace=error-all"
0a920b5b
AW
87
8825: Check your patch for general style as detailed in
89 Documentation/CodingStyle. Check for trivial violations with the
90 patch style checker prior to submission (scripts/checkpatch.pl).
91 You should be able to justify all violations that remain in
92 your patch.