diff mbox series

scripts/get_abi.pl: more strict matching of [XYZ]

Message ID 20240820-scripts-fix-get_abi-xyz-v1-1-6f6aea9b638b@baylibre.com (mailing list archive)
State New
Headers show
Series scripts/get_abi.pl: more strict matching of [XYZ] | expand

Commit Message

David Lechner Aug. 20, 2024, 4:40 p.m. UTC
When using `scripts/get_abi.pl undefined --search-string=iio` to try to
find undocumented ABI's in the IIO subsystem, no matches were found.

This was due to the fact that we have documented a directory naming
pattern:

	What: /sys/bus/iio/devices/iio:deviceX

which gets translated to the regex

	/sys/.*/iio\:device.*

which matches everything under every iio:device directory, causing any
attributes below this directory to incorrectly be filtered out as
already documented.

This patch makes the matching more strict by changing the replacement
for [XYZ] from .* to [^/]* so that we don't match the directory
separator. This way documenting directories won't filter out everything
contained in the directory as already being documented.

Signed-off-by: David Lechner <dlechner@baylibre.com>
---
get_maintainers.pl didn't pick up any matches for this patch, so I guess
this would go through the kbuild tree? (Since MAINTAINERS says:
"KERNEL BUILD + files below scripts/ (unless maintained elsewhere)")
---
 scripts/get_abi.pl | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


---
base-commit: 521b1e7f4cf0b05a47995b103596978224b380a8
change-id: 20240820-scripts-fix-get_abi-xyz-0ab0b9b62719

Best regards,

Comments

Nathan Chancellor Aug. 20, 2024, 5:57 p.m. UTC | #1
Hi David,

On Tue, Aug 20, 2024 at 11:40:18AM -0500, David Lechner wrote:
> When using `scripts/get_abi.pl undefined --search-string=iio` to try to
> find undocumented ABI's in the IIO subsystem, no matches were found.
> 
> This was due to the fact that we have documented a directory naming
> pattern:
> 
> 	What: /sys/bus/iio/devices/iio:deviceX
> 
> which gets translated to the regex
> 
> 	/sys/.*/iio\:device.*
> 
> which matches everything under every iio:device directory, causing any
> attributes below this directory to incorrectly be filtered out as
> already documented.
> 
> This patch makes the matching more strict by changing the replacement
> for [XYZ] from .* to [^/]* so that we don't match the directory
> separator. This way documenting directories won't filter out everything
> contained in the directory as already being documented.
> 
> Signed-off-by: David Lechner <dlechner@baylibre.com>
> ---
> get_maintainers.pl didn't pick up any matches for this patch, so I guess
> this would go through the kbuild tree? (Since MAINTAINERS says:
> "KERNEL BUILD + files below scripts/ (unless maintained elsewhere)")

I don't have any comments on the patch itself since I am unfamiliar with
this script and its purpose but looking at the git history, it seems
like Greg has merged the vast majority of the patches to this script in
the past:

$ git log --format='%cn' --no-merges scripts/get_abi.pl | sort | uniq -c
     53 Greg Kroah-Hartman
      9 Jonathan Corbet
      1 Masahiro Yamada

So adding him to take a look.

> ---
>  scripts/get_abi.pl | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/scripts/get_abi.pl b/scripts/get_abi.pl
> index de1c0354b50c..f65158694852 100755
> --- a/scripts/get_abi.pl
> +++ b/scripts/get_abi.pl
> @@ -867,7 +867,7 @@ sub undefined_symbols {
>  			$what =~ s/\{[^\}]+\}/.*/g;
>  			$what =~ s/\[[^\]]+\]/.*/g;
>  
> -			$what =~ s/[XYZ]/.*/g;
> +			$what =~ s/[XYZ]/[^\/]*/g;
>  
>  			# Recover [0-9] type of patterns
>  			$what =~ s/\xf4/[/g;
> 
> ---
> base-commit: 521b1e7f4cf0b05a47995b103596978224b380a8
> change-id: 20240820-scripts-fix-get_abi-xyz-0ab0b9b62719
> 
> Best regards,
> -- 
> David Lechner <dlechner@baylibre.com>
>
diff mbox series

Patch

diff --git a/scripts/get_abi.pl b/scripts/get_abi.pl
index de1c0354b50c..f65158694852 100755
--- a/scripts/get_abi.pl
+++ b/scripts/get_abi.pl
@@ -867,7 +867,7 @@  sub undefined_symbols {
 			$what =~ s/\{[^\}]+\}/.*/g;
 			$what =~ s/\[[^\]]+\]/.*/g;
 
-			$what =~ s/[XYZ]/.*/g;
+			$what =~ s/[XYZ]/[^\/]*/g;
 
 			# Recover [0-9] type of patterns
 			$what =~ s/\xf4/[/g;