Fix some regulator documentation
[linux-block.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 5614: If the patch affects IO/Disk, etc: has been tested with and without
90c699a9 57 CONFIG_LBDAF.
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.
1d992ce9
MK
70 Patches that change userspace interfaces should be CCed to
71 linux-api@vger.kernel.org.
ce584f91
AM
72
7320: Check that it all passes `make headers_check'.
0dd4e5b8
AM
74
7521: Has been checked with injection of at least slab and page-allocation
80abe55b 76 failures. See Documentation/fault-injection/.
0dd4e5b8
AM
77
78 If the new code is substantial, addition of subsystem-specific fault
79 injection might be appropriate.
a517b9f9 80
98091696
AM
8122: Newly-added code has been compiled with `gcc -W' (use "make
82 EXTRA_CFLAGS=-W"). This will generate lots of noise, but is good for
83 finding bugs like "warning: comparison between signed and unsigned".
244474b2
RD
84
8523: Tested after it has been merged into the -mm patchset to make sure
86 that it still works with all of the other queued patches and various
87 changes in the VM, VFS, and other subsystems.
8033fe65
RD
88
8924: All memory barriers {e.g., barrier(), rmb(), wmb()} need a comment in the
90 source code that explains the logic of what they are doing and why.