[tip: locking/core] docs: scripts: kernel-doc: accept bitwise negation like ~@var

From: tip-bot2 for Mark Rutland
Date: Tue Jun 06 2023 - 04:26:26 EST


The following commit has been merged into the locking/core branch of tip:

Commit-ID: 8aaf297a0dd66d4fac215af24ece8dea091079bc
Gitweb: https://git.kernel.org/tip/8aaf297a0dd66d4fac215af24ece8dea091079bc
Author: Mark Rutland <mark.rutland@xxxxxxx>
AuthorDate: Mon, 05 Jun 2023 08:01:21 +01:00
Committer: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
CommitterDate: Mon, 05 Jun 2023 09:57:23 +02:00

docs: scripts: kernel-doc: accept bitwise negation like ~@var

In some cases we'd like to indicate the bitwise negation of a parameter,
e.g.

~@var

This will be helpful for describing the atomic andnot operations, where
we'd like to write comments of the form:

Atomically updates @v to (@v & ~@i)

Which kernel-doc currently transforms to:

Atomically updates **v** to (**v** & ~**i**)

Rather than the preferable form:

Atomically updates **v** to (**v** & **~i**)

This is similar to what we did for '!@var' in commit:

ee2aa7590398 ("scripts: kernel-doc: accept negation like !@var")

This patch follows the same pattern that commit used to permit a '!'
prefix on a param ref, allowing a '~' prefix on a param ref, cuasing
kernel-doc to generate the preferred form above.

Suggested-by: Akira Yokosawa <akiyks@xxxxxxxxx>
Signed-off-by: Mark Rutland <mark.rutland@xxxxxxx>
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Link: https://lore.kernel.org/r/20230605070124.3741859-25-mark.rutland@xxxxxxx
---
scripts/kernel-doc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/kernel-doc b/scripts/kernel-doc
index 2486689..eb70c1f 100755
--- a/scripts/kernel-doc
+++ b/scripts/kernel-doc
@@ -64,7 +64,7 @@ my $type_constant = '\b``([^\`]+)``\b';
my $type_constant2 = '\%([-_\w]+)';
my $type_func = '(\w+)\(\)';
my $type_param = '\@(\w*((\.\w+)|(->\w+))*(\.\.\.)?)';
-my $type_param_ref = '([\!]?)\@(\w*((\.\w+)|(->\w+))*(\.\.\.)?)';
+my $type_param_ref = '([\!~]?)\@(\w*((\.\w+)|(->\w+))*(\.\.\.)?)';
my $type_fp_param = '\@(\w+)\(\)'; # Special RST handling for func ptr params
my $type_fp_param2 = '\@(\w+->\S+)\(\)'; # Special RST handling for structs with func ptr params
my $type_env = '(\$\w+)';