~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/translations/zh_TW/process/submit-checklist.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 .. SPDX-License-Identifier: GPL-2.0
  2 
  3 .. include:: ../disclaimer-zh_TW.rst
  4 
  5 :Original: Documentation/process/submit-checklist.rst
  6 :Translator:
  7  - Alex Shi <alexs@kernel.org>
  8  - Wu XiangCheng <bobwxc@email.cn>
  9  - Hu Haowen <2023002089@link.tyut.edu.cn>
 10 
 11 .. _tw_submitchecklist:
 12 
 13 Linux內核補丁提交檢查單
 14 ~~~~~~~~~~~~~~~~~~~~~~~
 15 
 16 如果開發人員希望看到他們的內核補丁提交更快地被接受,那麼他們應該做一些基本
 17 的事情。
 18 
 19 這些都是在 Documentation/translations/zh_CN/process/submitting-patches.rst
 20 和其他有關提交Linux內核補丁的文檔中提供的。
 21 
 22 1) 如果使用工具,則包括定義/聲明該工具的文件。不要依賴其他頭文件來引入您使用
 23    的頭文件。
 24 
 25 2) 乾淨的編譯:
 26 
 27    a) 使用合適的 ``CONFIG`` 選項 ``=y``、``=m`` 和 ``=n`` 。沒有 ``gcc``
 28       警告/錯誤,沒有鏈接器警告/錯誤。
 29 
 30    b) 通過 ``allnoconfig`` 、 ``allmodconfig``
 31 
 32    c) 使用 ``O=builddir`` 時可以成功編譯
 33 
 34    d) 任何 Documentation/ 下的變更都能成功構建且不引入新警告/錯誤。
 35       用 ``make htmldocs`` 或 ``make pdfdocs`` 檢驗構建情況並修復問題。
 36 
 37 3) 通過使用本地交叉編譯工具或其他一些構建設施在多個CPU體系結構上構建。
 38 
 39 4) PPC64是一種很好的交叉編譯檢查體系結構,因爲它傾向於對64位的數使用無符號
 40    長整型。
 41 
 42 5) 按 Documentation/translations/zh_CN/process/coding-style.rst 所述檢查您的
 43    補丁是否爲常規樣式。在提交之前使用補丁樣式檢查器 ``scripts/checkpatch.pl``
 44    檢查是否有輕微的衝突。您應該能夠處理您的補丁中存在的所有
 45    違規行爲。
 46 
 47 6) 任何新的或修改過的 ``CONFIG`` 選項都不應搞亂配置菜單,並默認爲關閉,除非
 48    它們符合 ``Documentation/kbuild/kconfig-language.rst`` 菜單屬性:默認值中
 49    記錄的例外條件。
 50 
 51 7) 所有新的 ``kconfig`` 選項都有幫助文本。
 52 
 53 8) 已仔細審查了相關的 ``Kconfig`` 組合。這很難用測試來糾正——腦力在這裏是有
 54    回報的。
 55 
 56 9) 通過 sparse 清查。
 57    (參見 Documentation/translations/zh_CN/dev-tools/sparse.rst )
 58 
 59 10) 使用 ``make checkstack`` 並修復他們發現的任何問題。
 60 
 61     .. note::
 62 
 63         ``checkstack`` 並不會明確指出問題,但是任何一個在堆棧上使用超過512
 64         字節的函數都可以進行更改。
 65 
 66 11) 包括 :ref:`kernel-doc <kernel_doc_zh>` 內核文檔以記錄全局內核API。(靜態
 67     函數不需要,但也可以。)使用 ``make htmldocs`` 或 ``make pdfdocs`` 檢查
 68     :ref:`kernel-doc <kernel_doc_zh>` 並修復任何問題。
 69 
 70 12) 通過以下選項同時啓用的測試: ``CONFIG_PREEMPT``, ``CONFIG_DEBUG_PREEMPT``,
 71     ``CONFIG_DEBUG_SLAB``, ``CONFIG_DEBUG_PAGEALLOC``, ``CONFIG_DEBUG_MUTEXES``,
 72     ``CONFIG_DEBUG_SPINLOCK``, ``CONFIG_DEBUG_ATOMIC_SLEEP``,
 73     ``CONFIG_PROVE_RCU`` 和 ``CONFIG_DEBUG_OBJECTS_RCU_HEAD`` 。
 74 
 75 13) 在 ``CONFIG_SMP``, ``CONFIG_PREEMPT`` 開啓和關閉的情況下都進行構建和運行
 76     時測試。
 77 
 78 14) 所有代碼路徑都已在啓用所有死鎖檢測(lockdep)功能的情況下運行。
 79 
 80 15) 所有新的 ``/proc`` 條目都記錄在 ``Documentation/``
 81 
 82 16) 所有新的內核引導參數都記錄在
 83     Documentation/admin-guide/kernel-parameters.rst 中。
 84 
 85 17) 所有新的模塊參數都記錄在 ``MODULE_PARM_DESC()``
 86 
 87 18) 所有新的用戶空間接口都記錄在 ``Documentation/ABI/`` 中。有關詳細信息,
 88     請參閱 ``Documentation/ABI/README`` 。更改用戶空間接口的補丁應該抄送
 89     linux-api@vger.kernel.org。
 90 
 91 19) 已通過至少注入slab和page分配失敗進行檢查。請參閱 ``Documentation/fault-injection/`` 。
 92     如果新代碼是實質性的,那麼添加子系統特定的故障注入可能是合適的。
 93 
 94 20) 新添加的代碼已經用 ``gcc -W`` 編譯(使用 ``make EXTRA-CFLAGS=-W`` )。這
 95     將產生大量噪聲,但對於查找諸如“警告:有符號和無符號之間的比較”之類的錯誤
 96     很有用。
 97 
 98 21) 在它被合併到-mm補丁集中之後進行測試,以確保它仍然與所有其他排隊的補丁以
 99     及VM、VFS和其他子系統中的各種更改一起工作。
100 
101 22) 所有內存屏障(例如 ``barrier()``, ``rmb()``, ``wmb()`` )都需要源代碼注
102     釋來解釋它們正在執行的操作及其原因的邏輯。
103 
104 23) 如果補丁添加了任何ioctl,那麼也要更新
105     ``Documentation/userspace-api/ioctl/ioctl-number.rst`` 。
106 
107 24) 如果修改後的源代碼依賴或使用與以下 ``Kconfig`` 符號相關的任何內核API或
108     功能,則在禁用相關 ``Kconfig`` 符號和/或 ``=m`` (如果該選項可用)的情況
109     下測試以下多個構建[並非所有這些都同時存在,只是它們的各種/隨機組合]:
110 
111     ``CONFIG_SMP``, ``CONFIG_SYSFS``, ``CONFIG_PROC_FS``, ``CONFIG_INPUT``,
112     ``CONFIG_PCI``, ``CONFIG_BLOCK``, ``CONFIG_PM``, ``CONFIG_MAGIC_SYSRQ``,
113     ``CONFIG_NET``, ``CONFIG_INET=n`` (但是最後一個需要 ``CONFIG_NET=y`` )。
114 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php