1.. include:: ../disclaimer-sp.rst 2 3:Original: Documentation/process/submit-checklist.rst 4:Translator: Avadhut Naik <avadhut.naik@amd.com> 5 6.. _sp_submitchecklist: 7 8Lista de comprobación para enviar parches del kernel de Linux 9~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 10 11Aquí hay algunas cosas básicas que los desarrolladores deben hacer si 12quieren que sus envíos de parches del kernel sean aceptados más 13rápidamente. 14 15Todo esto está más allá de la documentación que se proporciona en 16:ref:`Documentation/translations/sp_SP/process/submitting-patches.rst <sp_submittingpatches>` 17y en otros lugares con respecto al envío de parches del kernel de Linux. 18 191) Si utiliza una funcionalidad, #include el archivo que define/declara 20 esa funcionalidad. No dependa de otros archivos de encabezado que 21 extraigan los que utiliza. 22 232) Compile limpiamente: 24 25 a) Con las opciones ``CONFIG`` aplicables o modificadas ``=y``, ``=m``, 26 y ``=n``. Sin advertencias/errores del compilador ``gcc``, ni 27 advertencias/errores del linker. 28 29 b) Aprobar ``allnoconfig``, ``allmodconfig`` 30 31 c) Compila correctamente cuando se usa ``O=builddir`` 32 33 d) Cualquier documentación o cambios se compilan correctamente sin 34 nuevas advertencias/errores. Utilice ``make htmldocs`` o 35 ``make pdfdocs`` para comprobar la compilación y corregir cualquier 36 problema. 37 383) Se compila en varias arquitecturas de CPU mediante herramientas de 39 compilación cruzada locales o alguna otra granja de compilación. 40 414) ppc64 es una buena arquitectura para verificar la compilación cruzada 42 por que tiende a usar ``unsigned long`` para cantidades de 64-bits. 43 445) Verifique su parche para el estilo general según se detalla en 45 :ref:`Documentation/translations/sp_SP/process/coding-style.rst <sp_codingstyle>`. 46 Verifique las infracciones triviales con el verificador de estilo de 47 parches antes de la entrega (``scripts/checkpatch.pl``). 48 Debería ser capaz de justificar todas las infracciones que permanezcan 49 en su parche. 50 516) Cualquier opción ``CONFIG`` nueva o modificada no altera el menú de 52 configuración y se desactiva por defecto, a menos que cumpla con los 53 criterios de excepción documentados en 54 ``Documentation/kbuild/kconfig-language.rst`` Atributos del menú: valor por defecto. 55 567) Todas las nuevas opciones de ``Kconfig`` tienen texto de ayuda. 57 588) Ha sido revisado cuidadosamente con respecto a las combinaciones 59 relevantes de ``Kconfig``. Esto es muy difícil de hacer correctamente 60 con las pruebas -- la concentración mental da resultados aquí. 61 629) Verifique limpiamente con sparse. 63 6410) Use ``make checkstack`` y solucione cualquier problema que encuentre. 65 66 .. note:: 67 68 ``checkstack`` no señala los problemas explícitamente, pero 69 cualquier función que use más de 512 bytes en la pila es 70 candidata para el cambio. 71 7211) Incluya :ref:`kernel-doc <kernel_doc>` para documentar las API 73 globales del kernel. (No es necesario para funciones estáticas, pero 74 también está bien.) Utilice ``make htmldocs`` o ``make pdfdocs`` 75 para comprobar el :ref:`kernel-doc <kernel_doc>` y solucionar 76 cualquier problema. 77 7812) Ha sido probado con ``CONFIG_PREEMPT``, ``CONFIG_DEBUG_PREEMPT``, 79 ``CONFIG_DEBUG_SLAB``, ``CONFIG_DEBUG_PAGEALLOC``, ``CONFIG_DEBUG_MUTEXES``, 80 ``CONFIG_DEBUG_SPINLOCK``, ``CONFIG_DEBUG_ATOMIC_SLEEP`` 81 ``CONFIG_PROVE_RCU`` y ``CONFIG_DEBUG_OBJECTS_RCU_HEAD`` todos 82 habilitados simultáneamente. 83 8413) Ha sido probado en tiempo de compilación y ejecución con y sin 85 ``CONFIG_SMP`` y ``CONFIG_PREEMPT``. 86 8714) Todas las rutas de código se han ejercido con todas las 88 características de lockdep habilitadas. 89 9015) Todas las nuevas entradas de ``/proc`` están documentadas en 91 ``Documentation/``. 92 9316) Todos los nuevos parámetros de arranque del kernel están documentados 94 en ``Documentation/admin-guide/kernel-parameters.rst``. 95 9617) Todos los nuevos parámetros del módulo están documentados con 97 ``MODULE_PARM_DESC()``. 98 9918) Todas las nuevas interfaces de espacio de usuario están documentadas 100 en ``Documentation/ABI/``. Consulte ``Documentation/ABI/README`` para 101 obtener más información. Los parches que cambian las interfaces del 102 espacio de usuario deben ser CCed a linux-api@vger.kernel.org. 103 10419) Se ha comprobado con la inyección de al menos errores de asignación 105 de slab y página. Consulte ``Documentation/fault-injection/``. 106 107 Si el nuevo código es sustancial, la adición de la inyección de 108 errores específica del subsistema podría ser apropiada. 109 11020) El nuevo código añadido ha sido compilado con ``gcc -W`` (use 111 ``make KCFLAGS=-W``). Esto generara mucho ruido per es buena para 112 encontrar errores como "warning: comparison between signed and unsigned". 113 11421) Se prueba después de que se haya fusionado en el conjunto de 115 parches -mm para asegurarse de que siga funcionando con todos los 116 demás parches en cola y varios cambios en VM, VFS y otros subsistemas. 117 11822) Todas las barreras de memoria {p.ej., ``barrier()``, ``rmb()``, 119 ``wmb()``} necesitan un comentario en el código fuente que explique 120 la lógica de lo que están haciendo y por qué. 121 12223) Si se añaden algún ioctl en el parche, actualice también 123 ``Documentation/userspace-api/ioctl/ioctl-number.rst``. 124 12524) Si su código fuente modificado depende o utiliza cualquiera de las 126 API o características del kernel que están relacionadas con los 127 siguientes símbolos ``Kconfig`` entonces pruebe varias compilaciones 128 con los símbolos ``Kconfig`` relacionados deshabilitados y/o ``=m`` 129 (si esa opción esta disponible) [no todos estos al mismo tiempo, solo 130 varias/aleatorias combinaciones de ellos]: 131 132 ``CONFIG_SMP``, ``CONFIG_SYSFS``, ``CONFIG_PROC_FS``, ``CONFIG_INPUT``, ``CONFIG_PCI``, ``CONFIG_BLOCK``, ``CONFIG_PM``, ``CONFIG_MAGIC_SYSRQ`` 133 ``CONFIG_NET``, ``CONFIG_INET=n`` (pero luego con ``CONFIG_NET=y``). 134