[PATCH v2] CodingStyle: Inclusive Terminology

From: Dan Williams
Date: Wed Jul 08 2020 - 03:40:18 EST


Linux maintains a coding-style and its own idiomatic set of terminology.
Update the style guidelines to recommend replacements for the terms
master/slave and blacklist/whitelist.

Link: http://lore.kernel.org/r/159389297140.2210796.13590142254668787525.stgit@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Cc: Jonathan Corbet <corbet@xxxxxxx>
Acked-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
Acked-by: Dave Airlie <airlied@xxxxxxxxxx>
Acked-by: Kees Cook <keescook@xxxxxxxxxxxx>
Acked-by: SeongJae Park <sjpark@xxxxxxxxx>
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
Signed-off-by: Chris Mason <clm@xxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
---
Changes since v1 [1]
- Drop inclusive-terminology.rst, it is in the lore archives if the
arguments are needed for future debates, but otherwise no pressing
need to carry it in the tree (Linus, James)

- Update the recommended terms to include replacement for 'master' and
'whitelist' (Kees, Andy)

- Add 'target' as a replacement (Andy)

- Add 'device' as a replacement (Mark)

- Collect acks and signed-off-bys. Yes, the sign-offs are not reflective
of a submission chain, but I kept "Signed-off-by" if people offered
it.

- Non-change: I did not add explicit language as to what to do with
existing usages. My personal inclination is to prioritize this
coding-style cleanup higher than others, but the coding-style document
has typically not indicated policy on how cleanups are handled by
subsystems. It will be a case by case effort and consideration.

[1]: http://lore.kernel.org/r/159389297140.2210796.13590142254668787525.stgit@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Documentation/process/coding-style.rst | 13 +++++++++++++
1 file changed, 13 insertions(+)

diff --git a/Documentation/process/coding-style.rst b/Documentation/process/coding-style.rst
index 2657a55c6f12..a5b61e9005ac 100644
--- a/Documentation/process/coding-style.rst
+++ b/Documentation/process/coding-style.rst
@@ -319,6 +319,19 @@ If you are afraid to mix up your local variable names, you have another
problem, which is called the function-growth-hormone-imbalance syndrome.
See chapter 6 (Functions).

+For symbol names, avoid introducing new usage of 'master/slave' (or
+'slave' independent of 'master') and 'blacklist/whitelist'. Recommended
+replacements for 'master/slave' are: 'main/{secondary,subordinate}',
+'primary/replica', '{initiator,requester}/{target,responder}',
+'host/{device,proxy}', or 'leader/{performer,follower}'. Recommended
+replacements for 'blacklist/whitelist' are: 'denylist/allowlist' or
+'blocklist/passlist'.
+
+Exceptions for introducing new usage is to maintain a userspace ABI/API,
+or when updating code for an existing (as of 2020) hardware or protocol
+specification that mandates those terms. For new specifications
+translate specification usage of the terminology to the kernel coding
+standard where possible.

5) Typedefs
-----------