]> bbs.cooldavid.org Git - net-next-2.6.git/blame - Documentation/SubmitChecklist
xps: Transmit Packet Steering
[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
85f9642e
RD
212c: Builds successfully when using O=builddir
22
e54695a5 233: Builds on multiple CPU architectures by using local cross-compile tools
7de3369c 24 or some other build farm.
915a56d2 25
e54695a5
AM
264: ppc64 is a good architecture for cross-compilation checking because it
27 tends to use `unsigned long' for 64-bit quantities.
915a56d2 28
df24d9a6
BF
295: Check your patch for general style as detailed in
30 Documentation/CodingStyle. Check for trivial violations with the
31 patch style checker prior to submission (scripts/checkpatch.pl).
32 You should be able to justify all violations that remain in
33 your patch.
915a56d2 34
e54695a5 356: Any new or modified CONFIG options don't muck up the config menu.
915a56d2 36
e54695a5 377: All new Kconfig options have help text.
915a56d2 38
e54695a5
AM
398: Has been carefully reviewed with respect to relevant Kconfig
40 combinations. This is very hard to get right with testing -- brainpower
41 pays off here.
915a56d2 42
e54695a5 439: Check cleanly with sparse.
915a56d2 44
e54695a5
AM
4510: Use 'make checkstack' and 'make namespacecheck' and fix any problems
46 that they find. Note: checkstack does not point out problems explicitly,
47 but any one function that uses more than 512 bytes on the stack is a
48 candidate for change.
915a56d2 49
e54695a5
AM
5011: Include kernel-doc to document global kernel APIs. (Not required for
51 static functions, but OK there also.) Use 'make htmldocs' or 'make
52 mandocs' to check the kernel-doc and fix any issues.
915a56d2 53
e54695a5
AM
5412: Has been tested with CONFIG_PREEMPT, CONFIG_DEBUG_PREEMPT,
55 CONFIG_DEBUG_SLAB, CONFIG_DEBUG_PAGEALLOC, CONFIG_DEBUG_MUTEXES,
56 CONFIG_DEBUG_SPINLOCK, CONFIG_DEBUG_SPINLOCK_SLEEP all simultaneously
57 enabled.
915a56d2 58
e54695a5
AM
5913: Has been build- and runtime tested with and without CONFIG_SMP and
60 CONFIG_PREEMPT.
915a56d2 61
e54695a5 6214: If the patch affects IO/Disk, etc: has been tested with and without
90c699a9 63 CONFIG_LBDAF.
915a56d2 64
e54695a5 6515: All codepaths have been exercised with all lockdep features enabled.
915a56d2 66
e54695a5
AM
6716: All new /proc entries are documented under Documentation/
68
6917: All new kernel boot parameters are documented in
70 Documentation/kernel-parameters.txt.
71
7218: All new module parameters are documented with MODULE_PARM_DESC()
1a036cdd
RD
73
7419: All new userspace interfaces are documented in Documentation/ABI/.
75 See Documentation/ABI/README for more information.
1d992ce9
MK
76 Patches that change userspace interfaces should be CCed to
77 linux-api@vger.kernel.org.
ce584f91
AM
78
7920: Check that it all passes `make headers_check'.
0dd4e5b8
AM
80
8121: Has been checked with injection of at least slab and page-allocation
80abe55b 82 failures. See Documentation/fault-injection/.
0dd4e5b8
AM
83
84 If the new code is substantial, addition of subsystem-specific fault
85 injection might be appropriate.
a517b9f9 86
98091696
AM
8722: Newly-added code has been compiled with `gcc -W' (use "make
88 EXTRA_CFLAGS=-W"). This will generate lots of noise, but is good for
89 finding bugs like "warning: comparison between signed and unsigned".
244474b2
RD
90
9123: Tested after it has been merged into the -mm patchset to make sure
92 that it still works with all of the other queued patches and various
93 changes in the VM, VFS, and other subsystems.
8033fe65
RD
94
9524: All memory barriers {e.g., barrier(), rmb(), wmb()} need a comment in the
96 source code that explains the logic of what they are doing and why.
7de3369c
RD
97
9825: If any ioctl's are added by the patch, then also update
99 Documentation/ioctl/ioctl-number.txt.
85f9642e
RD
100
10126: If your modified source code depends on or uses any of the kernel
102 APIs or features that are related to the following kconfig symbols,
103 then test multiple builds with the related kconfig symbols disabled
104 and/or =m (if that option is available) [not all of these at the
105 same time, just various/random combinations of them]:
106
107 CONFIG_SMP, CONFIG_SYSFS, CONFIG_PROC_FS, CONFIG_INPUT, CONFIG_PCI,
108 CONFIG_BLOCK, CONFIG_PM, CONFIG_HOTPLUG, CONFIG_MAGIC_SYSRQ,
109 CONFIG_NET, CONFIG_INET=n (but latter with CONFIG_NET=y)