511aaf2b32
Translation for the following patches commit7dfbea4c46
("scripts: remove namespace.pl") commit1a63f9cce7
("docs: Remove make headers_check from checklist") commit1e013ff7cb
("docs: Document cross-referencing using relative path") commit0be1511f51
("Documentation: doc-guide: fixes to sphinx.rst") commit9113584012
("kernel-doc: Fix example in Nested structs/unions") commit875f82cb37
("Documentation/submitting-patches: Extend commit message layout description") commit78f101a1b2
("Documentation/submitting-patches: Add blurb about backtraces in commit messages") commitf0ea149eee
("docs: submitting-patches: Emphasise the requirement to Cc: stable when using Fixes: tag") commit05a5f51ca5
("Documentation: Replace lkml.org links with lore") commit9bf19b78a2
("Documentation/submitting-patches: Document the SoB chain") commitb7592e5b82
("docs: Remove the Microsoft rhetoric") commit26606ce072
("coding-style.rst: Avoid comma statements") commitdd58e64974
("docs: Make syscalls' helpers naming consistent") commit460cd17e9f
("net: switch to the kernel.org patchwork instance") commit163ba35ff3
("doc: use KCFLAGS instead of EXTRA_CFLAGS to pass flags from command line") commit0ef597c3ac
("docs: remove mention of ENABLE_MUST_CHECK") commitf8408264c7
("drivers: Remove CONFIG_OPROFILE support") commit0653c358d2
("scsi: Drop gdth driver") commitf8ae7bbec7
("net: x25_asy: Delete the x25_asy driver") commitcf6d6fc279
("docs: process/howto.rst: make sections on bug reporting match practice") commitda514157c4
("docs: make reporting-bugs.rst obsolete") commit4f8af077a0
("docs: Fix reST markup when linking to sections") commit3a4928cf5e
("Documentation: kernel-hacking: change 'current()' to 'current'") commitc170f2eb96
("docs: Document cross-referencing between documentation pages") Signed-off-by: Federico Vaga <federico.vaga@vaga.pv.it> Link: https://lore.kernel.org/r/20210409224104.30471-1-federico.vaga@vaga.pv.it Signed-off-by: Jonathan Corbet <corbet@lwn.net>
133 lines
5.9 KiB
ReStructuredText
133 lines
5.9 KiB
ReStructuredText
.. include:: ../disclaimer-ita.rst
|
|
|
|
:Original: :ref:`Documentation/process/submit-checklist.rst <submitchecklist>`
|
|
:Translator: Federico Vaga <federico.vaga@vaga.pv.it>
|
|
|
|
.. _it_submitchecklist:
|
|
|
|
Lista delle verifiche da fare prima di inviare una patch per il kernel Linux
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Qui troverete una lista di cose che uno sviluppatore dovrebbe fare per
|
|
vedere le proprie patch accettate più rapidamente.
|
|
|
|
Tutti questi punti integrano la documentazione fornita riguardo alla
|
|
sottomissione delle patch, in particolare
|
|
:ref:`Documentation/translations/it_IT/process/submitting-patches.rst <it_submittingpatches>`.
|
|
|
|
1) Se state usando delle funzionalità del kernel allora includete (#include)
|
|
i file che le dichiarano/definiscono. Non dipendente dal fatto che un file
|
|
d'intestazione include anche quelli usati da voi.
|
|
|
|
2) Compilazione pulita:
|
|
|
|
a) con le opzioni ``CONFIG`` negli stati ``=y``, ``=m`` e ``=n``. Nessun
|
|
avviso/errore di ``gcc`` e nessun avviso/errore dal linker.
|
|
|
|
b) con ``allnoconfig``, ``allmodconfig``
|
|
|
|
c) quando si usa ``O=builddir``
|
|
|
|
d) Qualsiasi modifica in Documentation/ deve compilare con successo senza
|
|
avvisi o errori. Usare ``make htmldocs`` o ``make pdfdocs`` per verificare
|
|
e correggere i problemi
|
|
|
|
3) Compilare per diverse architetture di processore usando strumenti per
|
|
la cross-compilazione o altri.
|
|
|
|
4) Una buona architettura per la verifica della cross-compilazione è la ppc64
|
|
perché tende ad usare ``unsigned long`` per le quantità a 64-bit.
|
|
|
|
5) Controllate lo stile del codice della vostra patch secondo le direttive
|
|
scritte in :ref:`Documentation/translations/it_IT/process/coding-style.rst <it_codingstyle>`.
|
|
Prima dell'invio della patch, usate il verificatore di stile
|
|
(``script/checkpatch.pl``) per scovare le violazioni più semplici.
|
|
Dovreste essere in grado di giustificare tutte le violazioni rimanenti nella
|
|
vostra patch.
|
|
|
|
6) Le opzioni ``CONFIG``, nuove o modificate, non scombussolano il menu
|
|
di configurazione e sono preimpostate come disabilitate a meno che non
|
|
soddisfino i criteri descritti in ``Documentation/kbuild/kconfig-language.rst``
|
|
alla punto "Voci di menu: valori predefiniti".
|
|
|
|
7) Tutte le nuove opzioni ``Kconfig`` hanno un messaggio di aiuto.
|
|
|
|
8) La patch è stata accuratamente revisionata rispetto alle più importanti
|
|
configurazioni ``Kconfig``. Questo è molto difficile da fare
|
|
correttamente - un buono lavoro di testa sarà utile.
|
|
|
|
9) Verificare con sparse.
|
|
|
|
10) Usare ``make checkstack`` e correggere tutti i problemi rilevati.
|
|
|
|
.. note::
|
|
|
|
``checkstack`` non evidenzia esplicitamente i problemi, ma una funzione
|
|
che usa più di 512 byte sullo stack è una buona candidata per una
|
|
correzione.
|
|
|
|
11) Includete commenti :ref:`kernel-doc <kernel_doc>` per documentare API
|
|
globali del kernel. Usate ``make htmldocs`` o ``make pdfdocs`` per
|
|
verificare i commenti :ref:`kernel-doc <kernel_doc>` ed eventualmente
|
|
correggerli.
|
|
|
|
12) La patch è stata verificata con le seguenti opzioni abilitate
|
|
contemporaneamente: ``CONFIG_PREEMPT``, ``CONFIG_DEBUG_PREEMPT``,
|
|
``CONFIG_DEBUG_SLAB``, ``CONFIG_DEBUG_PAGEALLOC``, ``CONFIG_DEBUG_MUTEXES``,
|
|
``CONFIG_DEBUG_SPINLOCK``, ``CONFIG_DEBUG_ATOMIC_SLEEP``,
|
|
``CONFIG_PROVE_RCU`` e ``CONFIG_DEBUG_OBJECTS_RCU_HEAD``.
|
|
|
|
13) La patch è stata compilata e verificata in esecuzione con, e senza,
|
|
le opzioni ``CONFIG_SMP`` e ``CONFIG_PREEMPT``.
|
|
|
|
14) Se la patch ha effetti sull'IO dei dischi, eccetera: allora dev'essere
|
|
verificata con, e senza, l'opzione ``CONFIG_LBDAF``.
|
|
|
|
15) Tutti i percorsi del codice sono stati verificati con tutte le funzionalità
|
|
di lockdep abilitate.
|
|
|
|
16) Tutti i nuovi elementi in ``/proc`` sono documentati in ``Documentation/``.
|
|
|
|
17) Tutti i nuovi parametri d'avvio del kernel sono documentati in
|
|
``Documentation/admin-guide/kernel-parameters.rst``.
|
|
|
|
18) Tutti i nuovi parametri dei moduli sono documentati con ``MODULE_PARM_DESC()``.
|
|
|
|
19) Tutte le nuove interfacce verso lo spazio utente sono documentate in
|
|
``Documentation/ABI/``. Leggete ``Documentation/ABI/README`` per maggiori
|
|
informazioni. Le patch che modificano le interfacce utente dovrebbero
|
|
essere inviate in copia anche a linux-api@vger.kernel.org.
|
|
|
|
20) La patch è stata verificata con l'iniezione di fallimenti in slab e
|
|
nell'allocazione di pagine. Vedere ``Documentation/fault-injection/``.
|
|
|
|
Se il nuovo codice è corposo, potrebbe essere opportuno aggiungere
|
|
l'iniezione di fallimenti specifici per il sottosistema.
|
|
|
|
21) Il nuovo codice è stato compilato con ``gcc -W`` (usate
|
|
``make KCFLAGS=-W``). Questo genererà molti avvisi, ma è ottimo
|
|
per scovare bachi come "warning: comparison between signed and unsigned".
|
|
|
|
22) La patch è stata verificata dopo essere stata inclusa nella serie di patch
|
|
-mm; questo al fine di assicurarsi che continui a funzionare assieme a
|
|
tutte le altre patch in coda e i vari cambiamenti nei sottosistemi VM, VFS
|
|
e altri.
|
|
|
|
23) Tutte le barriere di sincronizzazione {per esempio, ``barrier()``,
|
|
``rmb()``, ``wmb()``} devono essere accompagnate da un commento nei
|
|
sorgenti che ne spieghi la logica: cosa fanno e perché.
|
|
|
|
24) Se la patch aggiunge nuove chiamate ioctl, allora aggiornate
|
|
``Documentation/userspace-api/ioctl/ioctl-number.rst``.
|
|
|
|
25) Se il codice che avete modificato dipende o usa una qualsiasi interfaccia o
|
|
funzionalità del kernel che è associata a uno dei seguenti simboli
|
|
``Kconfig``, allora verificate che il kernel compili con diverse
|
|
configurazioni dove i simboli sono disabilitati e/o ``=m`` (se c'è la
|
|
possibilità) [non tutti contemporaneamente, solo diverse combinazioni
|
|
casuali]:
|
|
|
|
``CONFIG_SMP``, ``CONFIG_SYSFS``, ``CONFIG_PROC_FS``, ``CONFIG_INPUT``,
|
|
``CONFIG_PCI``, ``CONFIG_BLOCK``, ``CONFIG_PM``, ``CONFIG_MAGIC_SYSRQ``,
|
|
``CONFIG_NET``, ``CONFIG_INET=n`` (ma l'ultimo con ``CONFIG_NET=y``).
|