at v2.6.22-rc2 86 lines 3.3 kB view raw
1Linux Kernel patch sumbittal checklist 2~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3 4Here are some basic things that developers should do if they want to see their 5kernel patch submissions accepted more quickly. 6 7These are all above and beyond the documentation that is provided in 8Documentation/SubmittingPatches and elsewhere regarding submitting Linux 9kernel patches. 10 11 12 131: Builds cleanly with applicable or modified CONFIG options =y, =m, and 14 =n. No gcc warnings/errors, no linker warnings/errors. 15 162: Passes allnoconfig, allmodconfig 17 183: Builds on multiple CPU architectures by using local cross-compile tools 19 or something like PLM at OSDL. 20 214: ppc64 is a good architecture for cross-compilation checking because it 22 tends to use `unsigned long' for 64-bit quantities. 23 245: Matches kernel coding style(!) 25 266: Any new or modified CONFIG options don't muck up the config menu. 27 287: All new Kconfig options have help text. 29 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. 33 349: Check cleanly with sparse. 35 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. 40 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. 44 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. 49 5013: Has been build- and runtime tested with and without CONFIG_SMP and 51 CONFIG_PREEMPT. 52 5314: If the patch affects IO/Disk, etc: has been tested with and without 54 CONFIG_LBD. 55 5615: All codepaths have been exercised with all lockdep features enabled. 57 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() 64 6519: All new userspace interfaces are documented in Documentation/ABI/. 66 See Documentation/ABI/README for more information. 67 6820: Check that it all passes `make headers_check'. 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. 75 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". 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. 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"