| Linux Kernel patch sumbittal checklist | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| Here are some basic things that developers should do if they | |
| want to see their kernel patch submittals accepted quicker. | |
| These are all above and beyond the documentation that is provided | |
| in Documentation/SubmittingPatches and elsewhere about submitting | |
| Linux kernel patches. | |
| - Builds cleanly with applicable or modified CONFIG options =y, =m, and =n. | |
| No gcc warnings/errors, no linker warnings/errors. | |
| - Passes allnoconfig, allmodconfig | |
| - Builds on multiple CPU arch-es by using local cross-compile tools | |
| or something like PLM at OSDL. | |
| - ppc64 is a good architecture for cross-compilation checking because it | |
| tends to use `unsigned long' for 64-bit quantities. | |
| - Matches kernel coding style(!) | |
| - Any new or modified CONFIG options don't muck up the config menu. | |
| - All new Kconfig options have help text. | |
| - Has been carefully reviewed with respect to relevant Kconfig | |
| combinations. This is very hard to get right with testing -- | |
| brainpower pays off here. | |
| - Check cleanly with sparse. | |
| - Use 'make checkstack' and 'make namespacecheck' and fix any | |
| problems that they find. Note: checkstack does not point out | |
| problems explicitly, but any one function that uses more than | |
| 512 bytes on the stack is a candidate for change. | |
| - Include kernel-doc to document global kernel APIs. (Not required | |
| for static functions, but OK there also.) Use 'make htmldocs' | |
| or 'make mandocs' to check the kernel-doc and fix any issues. | |
| - Has been tested with CONFIG_PREEMPT, CONFIG_DEBUG_PREEMPT, | |
| CONFIG_DEBUG_SLAB, CONFIG_DEBUG_PAGEALLOC, CONFIG_DEBUG_MUTEXES, | |
| CONFIG_DEBUG_SPINLOCK, CONFIG_DEBUG_SPINLOCK_SLEEP all simultaneously | |
| enabled. | |
| - Has been build- and runtime tested with and without CONFIG_SMP and | |
| CONFIG_PREEMPT. | |
| - If the patch affects IO/Disk, etc: has been tested with and without | |
| CONFIG_LBD. | |
| 2006-APR-27 |