linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Bjorn Helgaas <helgaas@kernel.org>
To: linux-pci@vger.kernel.org
Cc: linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH v1 1/2] PCI: Document patch submission hints
Date: Fri, 29 Jun 2018 15:27:39 -0500	[thread overview]
Message-ID: <153030405971.57832.12860154795039493576.stgit@bhelgaas-glaptop.roam.corp.google.com> (raw)
In-Reply-To: <153030390808.57832.2200774416664543563.stgit@bhelgaas-glaptop.roam.corp.google.com>

From: Bjorn Helgaas <bhelgaas@google.com>

Add hints about how to write PCI patches and changelogs.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
---
 Documentation/PCI/00-INDEX               |    2 
 Documentation/PCI/submitting-patches.txt |  153 ++++++++++++++++++++++++++++++
 2 files changed, 155 insertions(+)
 create mode 100644 Documentation/PCI/submitting-patches.txt

diff --git a/Documentation/PCI/00-INDEX b/Documentation/PCI/00-INDEX
index 00c9a90b6f38..0f1d1de087f1 100644
--- a/Documentation/PCI/00-INDEX
+++ b/Documentation/PCI/00-INDEX
@@ -12,6 +12,8 @@ pci.txt
 	- info on the PCI subsystem for device driver authors
 pcieaer-howto.txt
 	- the PCI Express Advanced Error Reporting Driver Guide HOWTO
+submitting-patches.txt
+	- hints about how to submit PCI patches
 endpoint/pci-endpoint.txt
 	- guide to add endpoint controller driver and endpoint function driver.
 endpoint/pci-endpoint-cfs.txt
diff --git a/Documentation/PCI/submitting-patches.txt b/Documentation/PCI/submitting-patches.txt
new file mode 100644
index 000000000000..d6a694182446
--- /dev/null
+++ b/Documentation/PCI/submitting-patches.txt
@@ -0,0 +1,153 @@
+Start with Documentation/process/submitting-patches.rst for general
+guidance.
+
+These are things I look at when reviewing patches.  Most of the technical
+things are obvious or covered elsewhere.  Some things here are cosmetic
+personal preferences, but consistency makes maintenance easier.  I silently
+fix up most of the trivial things, so don't get too hung up on the details.
+
+Write the patch:
+
+  - Make each patch small but complete by itself.  Don't worry about making
+    patches *too* small; it's trivial for me to squash patches together if
+    necessary.
+
+  - Make sure the kernel builds after every patch.  You can't introduce a
+    problem in one patch and fix it in a subsequent patch.  If one of the
+    autobuilders finds a build issue, I'll revert the patch unless you send
+    a fix.
+
+  - Please do send whitespace and coding style fixes, but don't mix them
+    with other substantive changes.  It's easier for people to backport
+    fixes if whitespace changes are at the end of a series.
+
+  - Wrap code and comments to fit in 80 columns.  Exception: I prefer
+    printk strings to be in one piece for searchability, so don't split
+    quoted strings to make them fit in 80 columns.
+
+  - Follow the existing style for code, names, and indentation.  When
+    you're finished, the file should look like it was all written by one
+    person.
+
+Write the changelog title (first line of the changelog):
+
+  - Follow the existing convention  Run "git log --oneline <file>" and make
+    your subject line match previous changes in format, capitalization, and
+    sentence structure.  For example, native host bridge driver patch
+    titles look like this:
+
+      PCI: vmd: Remove IRQ affinity so we can allocate more IRQs
+      PCI: mediatek: Add MSI support for MT2712 and MT7622
+      PCI: rockchip: Remove IRQ domain if probe fails
+
+  - Write a complete sentence, starting with a capitalized verb.
+
+  - Include specific details, e.g., write "Add XYZ controller support"
+    instead of "add support for new generation controller".
+
+  - Do not include a trailing period in the title.
+
+Write the changelog:
+
+  - Make the changelog readable without the title.  The changelog is not a
+    continuation of the title, so it should make sense by itself.  Always
+    include a changelog, even if it is the same as the title.
+
+  - Explain the change (not just "Fix a problem"), but do it as concisely
+    as possible.  Include function names, references to sections of the
+    spec, URLs for bug reports, etc.  This makes reviewing and future
+    maintenance easier.
+
+  - Capitalize initialisms ("PCI", "IRQ", "ID", "MSI", etc) in all English
+    text, including title, changelog, and comments.  These are usually
+    written in lower-case in the C code, but please follow normal English
+    conventions in text.
+
+  - Include "()" after function names and "[]" after array names as a
+    visual clue that these refer to something in the code.
+
+  - Include dmesg output and stack trace when relevant.  Prune details that
+    aren't relevant, e.g., you can usually remove timestamps and function
+    addresses.  The objective is to concisely illustrate the issue and make
+    it discoverable by search engines.
+
+  - Use spaces (not tabs) in the changelog because "git log" indents the
+    changelog and things aligned with tabs won't stay aligned.
+
+  - Wrap changelogs to fit in 80 columns when shown by "git show", which
+    adds 4 spaces.  I use "textwidth=75" in vim.
+
+  - Order tags as suggested by Ingo [1] (extended):
+
+      Fixes:
+      Link:
+      Reported-by:
+      Tested-by:
+      Signed-off-by: (author)
+      Signed-off-by: (chain)
+      Reviewed-by:
+      Acked-by:
+      Cc: stable@vger.kernel.org	# 3.4+
+      Cc: (other)
+
+  - Include a "Fixes:" reference when you're fixing a previous commit and
+    copy the author of the previous commit.  This helps people figure out
+    where a change needs to be backported.
+
+  - Include specific commit references when possible, e.g., 'e77f847df54c
+    ("PCI: rockchip: Add Rockchip PCIe controller support")'.  I use this
+    alias to generate them:
+
+      alias gsr='git --no-pager show -s --abbrev-commit --abbrev=12 --pretty=format:"%h (\"%s\")%n"'
+
+  - Include bugzilla URLs if available (kernel.org bugzilla preferred),
+    e.g.,
+
+      Link: https://bugzilla.redhat.com/show_bug.cgi?id=1409201
+
+  - Include problem report URLs.  Use kernel.org URLs, e.g.,
+    http://lkml.kernel.org/r/<Message-ID>, because they don't depend on
+    other mirror sites:
+
+      Link: http://lkml.kernel.org/r/4bcbcbc1-7c79-09f0-5071-bc2f53bf6574@kernel.dk
+
+  - Include specific references to the spec when possible, e.g., "PCIe
+    r3.1, sec 7.8.2".  If you're talking about something mentioned in the
+    spec, use the same name and capitalization as the spec.
+
+  - Include a "Cc: stable@vger.kernel.org" tag if you want one, and
+    indicate which kernels need it.
+
+Post the patch:
+
+  - Use scripts/get_maintainer.pl to find the maintainers of files you're
+    changing, and copy the maintainers and authors of recent or related
+    changes.
+
+  - Always copy linux-pci@vger.kernel.org and linux-kernel@vger.kernel.org.
+    I don't apply patches that haven't appeared on the linux-pci mailing
+    list, even if you send them to me directly.  This is partly to make
+    sure everyone has a chance to review it and partly because I use the
+    Patchwork tracker [2], which only tracks things on the linux-pci list.
+
+  - If you send more than one patch and they're related, always include a
+    "[0/n]" cover letter.  This makes it easy for me to reply to the cover
+    letter saying "I applied this series."  I use "stg -e -v v1 --to=...
+    patch1..patchN".
+
+  - If you post a new version, please make sure it includes "[v2]" or
+    similar in the subject line.  If it's a series, I want a new version
+    of the entire series.  I don't want updates of individual patches
+    within the series -- that's too hard for me to keep track of.  It's
+    perfectly fine if some patches in a v2 series are the same as in the
+    initial posting.
+
+  - If you want the patch in the current release, include a cover letter
+    and tell me that.  Otherwise, I assume all patches are intended for the
+    next merge window.
+
+  - If you're really gung-ho, you can go to Patchwork [2] and mark your
+    superseded patches as "Superseded" so I don't have to do that myself.
+
+[1] http://lkml.kernel.org/r/20120711080446.GA17713@gmail.com
+[2] https://patchwork.ozlabs.org/project/linux-pci/list/


  reply	other threads:[~2018-06-29 20:27 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-29 20:27 [PATCH v1 0/2] PCI: Add patch submission and ACPI FW/OS info Bjorn Helgaas
2018-06-29 20:27 ` Bjorn Helgaas [this message]
2018-06-29 22:26   ` [PATCH v1 1/2] PCI: Document patch submission hints Lukas Wunner
2018-07-01 17:45   ` Lukas Wunner
2018-07-12 15:59     ` Bjorn Helgaas
2018-07-30 14:31       ` Lukas Wunner
2018-07-30 21:56         ` Bjorn Helgaas
2018-06-29 20:27 ` [PATCH v1 2/2] PCI: Document ACPI description of PCI host bridges Bjorn Helgaas
2018-07-04  9:40   ` Rafael J. Wysocki
2018-07-27 21:01     ` Bjorn Helgaas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=153030405971.57832.12860154795039493576.stgit@bhelgaas-glaptop.roam.corp.google.com \
    --to=helgaas@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).