.. include:: ../disclaimer-zh_CN.rst :Original: :ref:`Documentation/process/submit-checklist.rst <submitchecklist>` :Translator: Alex Shi <alex.shi@linux.alibaba.com> .. _cn_submitchecklist: Linuxå æ ¸è¡¥ä¸æäº¤æ¸ å ~~~~~~~~~~~~~~~~~~~~~ å¦æå¼å人åå¸æçå°ä»ä»¬çå æ ¸è¡¥ä¸æ交æ´å¿«å°è¢«æ¥åï¼é£ä¹ä»ä»¬åºè¯¥åä¸äºåºæ¬ çäºæ ã è¿äºé½æ¯å¨ :ref:`Documentation/translations/zh_CN/process/submitting-patches.rst <cn_submittingpatches>` åå ¶ä»æå ³æ交Linuxå æ ¸è¡¥ä¸çææ¡£ä¸æä¾çã 1) å¦æ使ç¨å·¥å ·ï¼åå æ¬å®ä¹/声æè¯¥å·¥å ·çæ件ãä¸è¦ä¾èµäºå ¶ä»å¤´æ件æå ¥æ¨ä½¿ç¨ ç头æ件ã 2) å¹²åçç¼è¯ï¼ a) 使ç¨éç¨æä¿®æ¹ç ``CONFIG`` é项 ``=y``ã``=m`` å ``=n`` ã没æGCC è¦å/é误ï¼æ²¡æé¾æ¥å¨è¦å/é误ã b) éè¿allnoconfigãallmodconfig c) ä½¿ç¨ ``O=builddir`` æ¶å¯ä»¥æåç¼è¯ 3) éè¿ä½¿ç¨æ¬å°äº¤åç¼è¯å·¥å ·æå ¶ä»ä¸äºæ建åºå¨å¤ä¸ªCPUä½ç³»ç»æä¸æ建ã 4) PPC64æ¯ä¸ç§å¾å¥½ç交åç¼è¯æ£æ¥ä½ç³»ç»æï¼å 为å®å¾åäºå¯¹64ä½çæ°ä½¿ç¨æ ç¬¦å· é¿æ´åã 5) å¦ä¸æè¿° :ref:`Documentation/translations/zh_CN/process/coding-style.rst <cn_codingstyle>`. æ£æ¥æ¨çè¡¥ä¸æ¯å¦ä¸ºå¸¸è§æ ·å¼ãå¨æäº¤ï¼ ``scripts/check patch.pl`` ï¼ä¹åï¼ ä½¿ç¨è¡¥ä¸æ ·å¼æ£æ¥å¨æ£æ¥æ¯å¦æ轻微çå²çªãæ¨åºè¯¥è½å¤å¤çæ¨çè¡¥ä¸ä¸åå¨çææ è¿è§è¡ä¸ºã 6) ä»»ä½æ°çæä¿®æ¹è¿ç ``CONFIG`` é项é½ä¸ä¼å¼èé ç½®èåï¼å¹¶é»è®¤ä¸ºå ³éï¼é¤é å®ä»¬ç¬¦å ``Documentation/kbuild/kconfig-language.rst`` ä¸è®°å½çå¼å¸¸æ¡ä»¶, èåå±æ§ï¼é»è®¤å¼. 7) æææ°ç ``kconfig`` é项é½æ帮å©ææ¬ã 8) å·²ä»ç»å®¡æ¥äºç¸å ³ç ``Kconfig`` ç»åãè¿å¾é¾ç¨æµè¯æ¥çº æ£ââèåå¨è¿éæ¯æ åæ¥çã 9) ç¨ sparse æ£æ¥å¹²åã 10) ä½¿ç¨ ``make checkstack`` å ``make namespacecheck`` 并修å¤ä»ä»¬åç°çä»»ä½ é®é¢ã .. note:: ``checkstack`` 并没ææç¡®æåºé®é¢ï¼ä½æ¯ä»»ä½ä¸ä¸ªå¨å æ ä¸ä½¿ç¨è¶ è¿512 åèçå½æ°é½å¯ä»¥è¿è¡æ´æ¹ã 11) å æ¬ :ref:`kernel-doc <kernel_doc>` å æ ¸æ档以记å½å ¨å±å æ ¸APIãï¼éæå½æ° ä¸éè¦ï¼ä½ä¹å¯ä»¥ãï¼ä½¿ç¨ ``make htmldocs`` æ ``make pdfdocs`` æ£æ¥ :ref:`kernel-doc <kernel_doc>` 并修å¤ä»»ä½é®é¢ã 12) éè¿ä»¥ä¸é项åæ¶å¯ç¨çæµè¯ ``CONFIG_PREEMPT``, ``CONFIG_DEBUG_PREEMPT``, ``CONFIG_DEBUG_SLAB``, ``CONFIG_DEBUG_PAGEALLOC``, ``CONFIG_DEBUG_MUTEXES``, ``CONFIG_DEBUG_SPINLOCK``, ``CONFIG_DEBUG_ATOMIC_SLEEP``, ``CONFIG_PROVE_RCU`` and ``CONFIG_DEBUG_OBJECTS_RCU_HEAD`` 13) å·²ç»è¿æ建åè¿è¡æ¶æµè¯ï¼å æ¬ææ没æ ``CONFIG_SMP``, ``CONFIG_PREEMPT``. 14) å¦æè¡¥ä¸ç¨åºå½±åIO/ç£ççï¼ä½¿ç¨æä¸ä½¿ç¨ ``CONFIG_LBDAF`` è¿è¡æµè¯ã 15) ææ代ç è·¯å¾é½å·²å¨å¯ç¨æælockdepåè½çæ åµä¸è¿è¡ã 16) æææ°ç/procæ¡ç®é½è®°å½å¨ ``Documentation/`` 17) æææ°çå æ ¸å¼å¯¼åæ°é½è®°å½å¨ Documentation/admin-guide/kernel-parameters.rst ä¸ã 18) æææ°ç模ååæ°é½è®°å½å¨ ``MODULE_PARM_DESC()`` 19) æææ°çç¨æ·ç©ºé´æ¥å£é½è®°å½å¨ ``Documentation/ABI/`` ä¸ãæå ³è¯¦ç»ä¿¡æ¯ï¼ 请åé ``Documentation/ABI/README`` ãæ´æ¹ç¨æ·ç©ºé´æ¥å£çè¡¥ä¸åºè¯¥æé linux-api@vger.kernel.orgã 20) æ£æ¥æ¯å¦å ¨é¨éè¿ ``make headers_check`` ã 21) å·²éè¿è³å°æ³¨å ¥slabåpageåé 失败è¿è¡æ£æ¥ã请åé ``Documentation/fault-injection/`` å¦ææ°ä»£ç æ¯å®è´¨æ§çï¼é£ä¹æ·»å åç³»ç»ç¹å®çæ éæ³¨å ¥å¯è½æ¯åéçã 22) æ°æ·»å ç代ç å·²ç»ç¨ ``gcc -W`` ç¼è¯ï¼ä½¿ç¨ ``make EXTRA-CFLAGS=-W`` ï¼ãè¿ å°äº§ç大éåªå£°ï¼ä½å¯¹äºæ¥æ¾è¯¸å¦âè¦åï¼æ符å·åæ 符å·ä¹é´çæ¯è¾âä¹ç±»çé误 å¾æç¨ã 23) å¨å®è¢«å并å°-mmè¡¥ä¸éä¸ä¹åè¿è¡æµè¯ï¼ä»¥ç¡®ä¿å®ä»ç¶ä¸ææå ¶ä»æéçè¡¥ä¸ä»¥ åVMãVFSåå ¶ä»åç³»ç»ä¸çåç§æ´æ¹ä¸èµ·å·¥ä½ã 24) ææå åå±éä¾å¦ ``barrier()``, ``rmb()``, ``wmb()`` é½éè¦æºä»£ç ä¸ç注 éæ¥è§£éå®ä»¬æ£å¨æ§è¡çæä½åå ¶åå çé»è¾ã 25) å¦æè¡¥ä¸æ·»å äºä»»ä½ioctlï¼é£ä¹ä¹è¦æ´æ° ``Documentation/userspace-api/ioctl/ioctl-number.rst`` 26) å¦æä¿®æ¹åçæºä»£ç ä¾èµæ使ç¨ä¸ä»¥ä¸ ``Kconfig`` 符å·ç¸å ³çä»»ä½å æ ¸APIæ åè½ï¼åå¨ç¦ç¨ç¸å ³ ``Kconfig`` 符å·å/æ ``=m`` ï¼å¦æ该é项å¯ç¨ï¼çæ åµ ä¸æµè¯ä»¥ä¸å¤ä¸ªæ建[并éææè¿äºé½åæ¶åå¨ï¼åªæ¯å®ä»¬çåç§/éæºç»å]ï¼ ``CONFIG_SMP``, ``CONFIG_SYSFS``, ``CONFIG_PROC_FS``, ``CONFIG_INPUT``, ``CONFIG_PCI``, ``CONFIG_BLOCK``, ``CONFIG_PM``, ``CONFIG_MAGIC_SYSRQ``, ``CONFIG_NET``, ``CONFIG_INET=n`` (ä½æ¯åè ä¼´é ``CONFIG_NET=y``).