Warning
Si tiene alguna duda sobre la exactitud del contenido de esta traducción, la única referencia válida es la documentación oficial en inglés. Además, por defecto, los enlaces a documentos redirigen a la documentación en inglés, incluso si existe una versión traducida. Consulte el índice para más información.
- Original:
- Translator:
- Avadhut Naik <avadhut.naik@amd.com> 
Lista de comprobación para enviar parches del kernel de Linux¶
Aquí hay algunas cosas básicas que los desarrolladores deben hacer si quieren que sus envíos de parches del kernel sean aceptados más rápidamente.
Todo esto está más allá de la documentación que se proporciona en Documentation/translations/sp_SP/process/submitting-patches.rst y en otros lugares con respecto al envío de parches del kernel de Linux.
- Si utiliza una funcionalidad, #include el archivo que define/declara esa funcionalidad. No dependa de otros archivos de encabezado que extraigan los que utiliza. 
- Compile limpiamente: 
Con las opciones
CONFIGaplicables o modificadas=y,=m, y=n. Sin advertencias/errores del compiladorgcc, ni advertencias/errores del linker.
Aprobar
allnoconfig,allmodconfig
Compila correctamente cuando se usa
O=builddir
Cualquier documentación o cambios se compilan correctamente sin nuevas advertencias/errores. Utilice
make htmldocsomake pdfdocspara comprobar la compilación y corregir cualquier problema.
- Se compila en varias arquitecturas de CPU mediante herramientas de compilación cruzada locales o alguna otra granja de compilación. 
- ppc64 es una buena arquitectura para verificar la compilación cruzada por que tiende a usar - unsigned longpara cantidades de 64-bits.
- Verifique su parche para el estilo general según se detalla en Documentation/translations/sp_SP/process/coding-style.rst. Verifique las infracciones triviales con el verificador de estilo de parches antes de la entrega ( - scripts/checkpatch.pl). Debería ser capaz de justificar todas las infracciones que permanezcan en su parche.
- Cualquier opción - CONFIGnueva o modificada no altera el menú de configuración y se desactiva por defecto, a menos que cumpla con los criterios de excepción documentados en- Documentation/kbuild/kconfig-language.rstAtributos del menú: valor por defecto.
- Todas las nuevas opciones de - Kconfigtienen texto de ayuda.
- Ha sido revisado cuidadosamente con respecto a las combinaciones relevantes de - Kconfig. Esto es muy difícil de hacer correctamente con las pruebas -- la concentración mental da resultados aquí.
- Verifique limpiamente con sparse. 
- Use - make checkstacky solucione cualquier problema que encuentre.- Note - checkstackno señala los problemas explícitamente, pero cualquier función que use más de 512 bytes en la pila es candidata para el cambio.
- Incluya kernel-doc para documentar las API globales del kernel. (No es necesario para funciones estáticas, pero también está bien.) Utilice - make htmldocso- make pdfdocspara comprobar el kernel-doc y solucionar cualquier problema.
- Ha sido probado con - CONFIG_PREEMPT,- CONFIG_DEBUG_PREEMPT,- CONFIG_DEBUG_SLAB,- CONFIG_DEBUG_PAGEALLOC,- CONFIG_DEBUG_MUTEXES,- CONFIG_DEBUG_SPINLOCK,- CONFIG_DEBUG_ATOMIC_SLEEP- CONFIG_PROVE_RCUy- CONFIG_DEBUG_OBJECTS_RCU_HEADtodos habilitados simultáneamente.
- Ha sido probado en tiempo de compilación y ejecución con y sin - CONFIG_SMPy- CONFIG_PREEMPT.
- Todas las rutas de código se han ejercido con todas las características de lockdep habilitadas. 
- Todas las nuevas entradas de - /procestán documentadas en- Documentation/.
- Todos los nuevos parámetros de arranque del kernel están documentados en - Documentation/admin-guide/kernel-parameters.rst.
- Todos los nuevos parámetros del módulo están documentados con - MODULE_PARM_DESC().
- Todas las nuevas interfaces de espacio de usuario están documentadas en - Documentation/ABI/. Consulte- Documentation/ABI/READMEpara obtener más información. Los parches que cambian las interfaces del espacio de usuario deben ser CCed a linux-api@vger.kernel.org.
- Se ha comprobado con la inyección de al menos errores de asignación de slab y página. Consulte - Documentation/fault-injection/.- Si el nuevo código es sustancial, la adición de la inyección de errores específica del subsistema podría ser apropiada. 
- El nuevo código añadido ha sido compilado con - gcc -W(use- make KCFLAGS=-W). Esto generara mucho ruido per es buena para encontrar errores como “warning: comparison between signed and unsigned”.
- Se prueba después de que se haya fusionado en el conjunto de parches -mm para asegurarse de que siga funcionando con todos los demás parches en cola y varios cambios en VM, VFS y otros subsistemas. 
- Todas las barreras de memoria {p.ej., - barrier(),- rmb(),- wmb()} necesitan un comentario en el código fuente que explique la lógica de lo que están haciendo y por qué.
- Si se añaden algún ioctl en el parche, actualice también - Documentation/userspace-api/ioctl/ioctl-number.rst.
- Si su código fuente modificado depende o utiliza cualquiera de las API o características del kernel que están relacionadas con los siguientes símbolos - Kconfigentonces pruebe varias compilaciones con los símbolos- Kconfigrelacionados deshabilitados y/o- =m(si esa opción esta disponible) [no todos estos al mismo tiempo, solo varias/aleatorias combinaciones de ellos]:- CONFIG_SMP,- CONFIG_SYSFS,- CONFIG_PROC_FS,- CONFIG_INPUT,- CONFIG_PCI,- CONFIG_BLOCK,- CONFIG_PM,- CONFIG_MAGIC_SYSRQ- CONFIG_NET,- CONFIG_INET=n(pero luego con- CONFIG_NET=y).