]> bbs.cooldavid.org Git - net-next-2.6.git/blame - Documentation/SubmitChecklist
tg3: Restore likely() check in tg3_poll_msix()
[net-next-2.6.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
b5247c85
RD
121: If you use a facility then #include the file that defines/declares
13 that facility. Don't depend on other header files pulling in ones
14 that you use.
15
162: Builds cleanly with applicable or modified CONFIG options =y, =m, and
e54695a5 17 =n. No gcc warnings/errors, no linker warnings/errors.
915a56d2 18
b5247c85 192b: Passes allnoconfig, allmodconfig
915a56d2 20
e54695a5 213: Builds on multiple CPU architectures by using local cross-compile tools
7de3369c 22 or some other build farm.
915a56d2 23
e54695a5
AM
244: ppc64 is a good architecture for cross-compilation checking because it
25 tends to use `unsigned long' for 64-bit quantities.
915a56d2 26
df24d9a6
BF
275: Check your patch for general style as detailed in
28 Documentation/CodingStyle. Check for trivial violations with the
29 patch style checker prior to submission (scripts/checkpatch.pl).
30 You should be able to justify all violations that remain in
31 your patch.
915a56d2 32
e54695a5 336: Any new or modified CONFIG options don't muck up the config menu.
915a56d2 34
e54695a5 357: All new Kconfig options have help text.
915a56d2 36
e54695a5
AM
378: Has been carefully reviewed with respect to relevant Kconfig
38 combinations. This is very hard to get right with testing -- brainpower
39 pays off here.
915a56d2 40
e54695a5 419: Check cleanly with sparse.
915a56d2 42
e54695a5
AM
4310: Use 'make checkstack' and 'make namespacecheck' and fix any problems
44 that they find. Note: checkstack does not point out problems explicitly,
45 but any one function that uses more than 512 bytes on the stack is a
46 candidate for change.
915a56d2 47
e54695a5
AM
4811: Include kernel-doc to document global kernel APIs. (Not required for
49 static functions, but OK there also.) Use 'make htmldocs' or 'make
50 mandocs' to check the kernel-doc and fix any issues.
915a56d2 51
e54695a5
AM
5212: Has been tested with CONFIG_PREEMPT, CONFIG_DEBUG_PREEMPT,
53 CONFIG_DEBUG_SLAB, CONFIG_DEBUG_PAGEALLOC, CONFIG_DEBUG_MUTEXES,
54 CONFIG_DEBUG_SPINLOCK, CONFIG_DEBUG_SPINLOCK_SLEEP all simultaneously
55 enabled.
915a56d2 56
e54695a5
AM
5713: Has been build- and runtime tested with and without CONFIG_SMP and
58 CONFIG_PREEMPT.
915a56d2 59
e54695a5 6014: If the patch affects IO/Disk, etc: has been tested with and without
90c699a9 61 CONFIG_LBDAF.
915a56d2 62
e54695a5 6315: All codepaths have been exercised with all lockdep features enabled.
915a56d2 64
e54695a5
AM
6516: All new /proc entries are documented under Documentation/
66
6717: All new kernel boot parameters are documented in
68 Documentation/kernel-parameters.txt.
69
7018: All new module parameters are documented with MODULE_PARM_DESC()
1a036cdd
RD
71
7219: All new userspace interfaces are documented in Documentation/ABI/.
73 See Documentation/ABI/README for more information.
1d992ce9
MK
74 Patches that change userspace interfaces should be CCed to
75 linux-api@vger.kernel.org.
ce584f91
AM
76
7720: Check that it all passes `make headers_check'.
0dd4e5b8
AM
78
7921: Has been checked with injection of at least slab and page-allocation
80abe55b 80 failures. See Documentation/fault-injection/.
0dd4e5b8
AM
81
82 If the new code is substantial, addition of subsystem-specific fault
83 injection might be appropriate.
a517b9f9 84
98091696
AM
8522: Newly-added code has been compiled with `gcc -W' (use "make
86 EXTRA_CFLAGS=-W"). This will generate lots of noise, but is good for
87 finding bugs like "warning: comparison between signed and unsigned".
244474b2
RD
88
8923: Tested after it has been merged into the -mm patchset to make sure
90 that it still works with all of the other queued patches and various
91 changes in the VM, VFS, and other subsystems.
8033fe65
RD
92
9324: All memory barriers {e.g., barrier(), rmb(), wmb()} need a comment in the
94 source code that explains the logic of what they are doing and why.
7de3369c
RD
95
9625: If any ioctl's are added by the patch, then also update
97 Documentation/ioctl/ioctl-number.txt.