* [PATCH v3 0/4] checkpatch: enhance compatible string checking
@ 2014-03-07 13:26 Florian Vaussard
2014-03-07 13:26 ` [PATCH v3 1/4] checkpatch: check vendor compatible with dashes Florian Vaussard
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Florian Vaussard @ 2014-03-07 13:26 UTC (permalink / raw)
To: Andy Whitcroft, Joe Perches; +Cc: Rob Herring, devicetree, linux-kernel
Hi,
This series proposes a number of fixes and enhancements to the checks
performed on compatible strings:
1) Fix vendor check for strings with dashes
2) Fix spurious vendor warning, when there is no vendor
3) Check for compatible strings in .c and .h files too
4) Match only at the begining of each line in vendor-prefixes.txt
Joe: I have split your patch to perform atomic changes. I also
merged one part into one of my patch. I added your S-o-B on the
corresponding patches, I let you check if you are OK with the changes.
Regards,
Florian
Since v2 [2]:
- Merged changes proposed by Joe Perches
1) check compatible also in .[ch] files
2) match strings at the begining of vendor-prefixes.txt
3) minor cleanups
Since v1 [1]:
- Add check for vendors with '-', as suggested by Joe Perches
[1] http://thread.gmane.org/gmane.linux.drivers.devicetree/63770
[2] http://thread.gmane.org/gmane.linux.kernel/1657871
Florian Vaussard (2):
checkpatch: check vendor compatible with dashes
checkpatch: fix spurious vendor compatible warnings
Joe Perches (2):
checkpatch: check compatible strings in .c and .h too
checkpatch: improve the compatible vendor match
scripts/checkpatch.pl | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)
--
1.8.5.3
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v3 1/4] checkpatch: check vendor compatible with dashes
2014-03-07 13:26 [PATCH v3 0/4] checkpatch: enhance compatible string checking Florian Vaussard
@ 2014-03-07 13:26 ` Florian Vaussard
2014-03-07 13:26 ` [PATCH v3 3/4] checkpatch: check compatible strings in .c and .h too Florian Vaussard
[not found] ` <1394198771-25913-1-git-send-email-florian.vaussard-p8DiymsW2f8@public.gmane.org>
2 siblings, 0 replies; 10+ messages in thread
From: Florian Vaussard @ 2014-03-07 13:26 UTC (permalink / raw)
To: Andy Whitcroft, Joe Perches; +Cc: Rob Herring, devicetree, linux-kernel
The current vendor compatible check will not match vendors with
dashes, like:
compatible="asahi-kasei"
Reported-by: Joe Perches <joe@perches.com>
Signed-off-by: Florian Vaussard <florian.vaussard@epfl.ch>
---
scripts/checkpatch.pl | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 464dcef..e304e77 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -2058,7 +2058,7 @@ sub process {
my $vendor = $compat;
my $vendor_path = $dt_path . "vendor-prefixes.txt";
next if (! -f $vendor_path);
- $vendor =~ s/^([a-zA-Z0-9]+)\,.*/$1/;
+ $vendor =~ s/^([a-zA-Z0-9\-]+)\,.*/$1/;
`grep -Eq "$vendor" $vendor_path`;
if ( $? >> 8 ) {
WARN("UNDOCUMENTED_DT_STRING",
--
1.8.5.3
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v3 2/4] checkpatch: fix spurious vendor compatible warnings
[not found] ` <1394198771-25913-1-git-send-email-florian.vaussard-p8DiymsW2f8@public.gmane.org>
@ 2014-03-07 13:26 ` Florian Vaussard
2014-03-07 13:26 ` [PATCH v3 4/4] checkpatch: improve the compatible vendor match Florian Vaussard
2014-03-07 16:08 ` [PATCH v3 0/4] checkpatch: enhance compatible string checking Joe Perches
2 siblings, 0 replies; 10+ messages in thread
From: Florian Vaussard @ 2014-03-07 13:26 UTC (permalink / raw)
To: Andy Whitcroft, Joe Perches
Cc: Rob Herring, devicetree-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA
With a compatible string like
compatible = "foo";
checkpatch will currently try to find "foo" in vendor-prefixes.txt,
which is wrong since the vendor prefix is empty in this specific case.
Skip the vendor test if the compatible is not like
compatible = "vendor,something";
Signed-off-by: Florian Vaussard <florian.vaussard-p8DiymsW2f8@public.gmane.org>
[joe-6d6DIl74uiNBDgjK7y7TUQ@public.gmane.org: cleaned the implementation]
Signed-off-by: Joe Perches <joe-6d6DIl74uiNBDgjK7y7TUQ@public.gmane.org>
---
scripts/checkpatch.pl | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index e304e77..96f10ba 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -2055,10 +2055,10 @@ sub process {
"DT compatible string \"$compat\" appears un-documented -- check $dt_path\n" . $herecurr);
}
- my $vendor = $compat;
my $vendor_path = $dt_path . "vendor-prefixes.txt";
next if (! -f $vendor_path);
- $vendor =~ s/^([a-zA-Z0-9\-]+)\,.*/$1/;
+ next if $compat !~ /^([a-zA-Z0-9\-]+)\,/;
+ my $vendor = $1;
`grep -Eq "$vendor" $vendor_path`;
if ( $? >> 8 ) {
WARN("UNDOCUMENTED_DT_STRING",
--
1.8.5.3
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v3 3/4] checkpatch: check compatible strings in .c and .h too
2014-03-07 13:26 [PATCH v3 0/4] checkpatch: enhance compatible string checking Florian Vaussard
2014-03-07 13:26 ` [PATCH v3 1/4] checkpatch: check vendor compatible with dashes Florian Vaussard
@ 2014-03-07 13:26 ` Florian Vaussard
[not found] ` <1394198771-25913-4-git-send-email-florian.vaussard-p8DiymsW2f8@public.gmane.org>
[not found] ` <1394198771-25913-1-git-send-email-florian.vaussard-p8DiymsW2f8@public.gmane.org>
2 siblings, 1 reply; 10+ messages in thread
From: Florian Vaussard @ 2014-03-07 13:26 UTC (permalink / raw)
To: Andy Whitcroft, Joe Perches; +Cc: Rob Herring, devicetree, linux-kernel
From: Joe Perches <joe@perches.com>
From: Joe Perches <joe@perches.com>
Look for ".compatible = "foo" strings not only in .dts files, but
in .c and .h too.
Signed-off-by: Joe Perches <joe@perches.com>
[florian.vaussard@epfl.ch: split patch, commit log]
Signed-off-by: Florian Vaussard <florian.vaussard@epfl.ch>
---
scripts/checkpatch.pl | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 96f10ba..9205153 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -2041,8 +2041,10 @@ sub process {
}
# check for DT compatible documentation
- if (defined $root && $realfile =~ /\.dts/ &&
- $rawline =~ /^\+\s*compatible\s*=/) {
+ if (defined $root &&
+ (($realfile =~ /\.dtsi?$/ && $line =~ /^\+\s*compatible\s*=\s*\"/) ||
+ ($realfile =~ /\.[ch]$/ && $line =~ /^\+.*\.compatible\s*=\s*\"/))) {
+
my @compats = $rawline =~ /\"([a-zA-Z0-9\-\,\.\+_]+)\"/g;
foreach my $compat (@compats) {
--
1.8.5.3
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v3 4/4] checkpatch: improve the compatible vendor match
[not found] ` <1394198771-25913-1-git-send-email-florian.vaussard-p8DiymsW2f8@public.gmane.org>
2014-03-07 13:26 ` [PATCH v3 2/4] checkpatch: fix spurious vendor compatible warnings Florian Vaussard
@ 2014-03-07 13:26 ` Florian Vaussard
2014-03-07 13:38 ` Florian Vaussard
2014-03-07 16:08 ` [PATCH v3 0/4] checkpatch: enhance compatible string checking Joe Perches
2 siblings, 1 reply; 10+ messages in thread
From: Florian Vaussard @ 2014-03-07 13:26 UTC (permalink / raw)
To: Andy Whitcroft, Joe Perches
Cc: Rob Herring, devicetree-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA
From: Joe Perches <joe-6d6DIl74uiNBDgjK7y7TUQ@public.gmane.org>
From: Joe Perches <joe-6d6DIl74uiNBDgjK7y7TUQ@public.gmane.org>
Improve the vendor name match in vendor-prefix.txt
by only matching the exact vendor name at the beginning of lines.
Signed-off-by: Joe Perches <joe-6d6DIl74uiNBDgjK7y7TUQ@public.gmane.org>
[florian.vaussard-p8DiymsW2f8@public.gmane.org: split patch, commit log]
Signed-off-by: Florian Vaussard <florian.vaussard-p8DiymsW2f8@public.gmane.org>
---
scripts/checkpatch.pl | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 9205153..5bda9f7 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -2047,9 +2047,11 @@ sub process {
my @compats = $rawline =~ /\"([a-zA-Z0-9\-\,\.\+_]+)\"/g;
+ my $dt_path = $root . "/Documentation/devicetree/bindings/";
+ my $vp_file = $dt_path . "vendor-prefixes.txt";
+
foreach my $compat (@compats) {
my $compat2 = $compat;
- my $dt_path = $root . "/Documentation/devicetree/bindings/";
$compat2 =~ s/\,[a-z]*\-/\,<\.\*>\-/;
`grep -Erq "$compat|$compat2" $dt_path`;
if ( $? >> 8 ) {
@@ -2057,14 +2059,12 @@ sub process {
"DT compatible string \"$compat\" appears un-documented -- check $dt_path\n" . $herecurr);
}
- my $vendor_path = $dt_path . "vendor-prefixes.txt";
- next if (! -f $vendor_path);
next if $compat !~ /^([a-zA-Z0-9\-]+)\,/;
my $vendor = $1;
- `grep -Eq "$vendor" $vendor_path`;
+ `grep -Eq "^$vendor\\b" $vp_file`;
if ( $? >> 8 ) {
WARN("UNDOCUMENTED_DT_STRING",
- "DT compatible string vendor \"$vendor\" appears un-documented -- check $vendor_path\n" . $herecurr);
+ "DT compatible string vendor \"$vendor\" appears un-documented -- check $vp_file\n" . $herecurr);
}
}
}
--
1.8.5.3
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v3 3/4] checkpatch: check compatible strings in .c and .h too
[not found] ` <1394198771-25913-4-git-send-email-florian.vaussard-p8DiymsW2f8@public.gmane.org>
@ 2014-03-07 13:29 ` Florian Vaussard
2014-03-07 13:34 ` Florian Vaussard
1 sibling, 0 replies; 10+ messages in thread
From: Florian Vaussard @ 2014-03-07 13:29 UTC (permalink / raw)
To: Andy Whitcroft, Joe Perches
Cc: Rob Herring, devicetree-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA
On 03/07/2014 02:26 PM, Florian Vaussard wrote:
> From: Joe Perches <joe-6d6DIl74uiNBDgjK7y7TUQ@public.gmane.org>
>
> From: Joe Perches <joe-6d6DIl74uiNBDgjK7y7TUQ@public.gmane.org>
>
Mmmh, sorry for this. I will resend.
> Look for ".compatible = "foo" strings not only in .dts files, but
> in .c and .h too.
>
> Signed-off-by: Joe Perches <joe-6d6DIl74uiNBDgjK7y7TUQ@public.gmane.org>
> [florian.vaussard-p8DiymsW2f8@public.gmane.org: split patch, commit log]
> Signed-off-by: Florian Vaussard <florian.vaussard-p8DiymsW2f8@public.gmane.org>
> ---
> scripts/checkpatch.pl | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> index 96f10ba..9205153 100755
> --- a/scripts/checkpatch.pl
> +++ b/scripts/checkpatch.pl
> @@ -2041,8 +2041,10 @@ sub process {
> }
>
> # check for DT compatible documentation
> - if (defined $root && $realfile =~ /\.dts/ &&
> - $rawline =~ /^\+\s*compatible\s*=/) {
> + if (defined $root &&
> + (($realfile =~ /\.dtsi?$/ && $line =~ /^\+\s*compatible\s*=\s*\"/) ||
> + ($realfile =~ /\.[ch]$/ && $line =~ /^\+.*\.compatible\s*=\s*\"/))) {
> +
> my @compats = $rawline =~ /\"([a-zA-Z0-9\-\,\.\+_]+)\"/g;
>
> foreach my $compat (@compats) {
>
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v3 3/4] checkpatch: check compatible strings in .c and .h too
[not found] ` <1394198771-25913-4-git-send-email-florian.vaussard-p8DiymsW2f8@public.gmane.org>
2014-03-07 13:29 ` Florian Vaussard
@ 2014-03-07 13:34 ` Florian Vaussard
1 sibling, 0 replies; 10+ messages in thread
From: Florian Vaussard @ 2014-03-07 13:34 UTC (permalink / raw)
To: Andy Whitcroft, Joe Perches
Cc: Rob Herring, devicetree-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA
From: Joe Perches <joe-6d6DIl74uiNBDgjK7y7TUQ@public.gmane.org>
Look for ".compatible = "foo" strings not only in .dts files, but
in .c and .h too.
Signed-off-by: Joe Perches <joe-6d6DIl74uiNBDgjK7y7TUQ@public.gmane.org>
[florian.vaussard-p8DiymsW2f8@public.gmane.org: split patch, commit log]
Signed-off-by: Florian Vaussard <florian.vaussard-p8DiymsW2f8@public.gmane.org>
---
scripts/checkpatch.pl | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 96f10ba..9205153 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -2041,8 +2041,10 @@ sub process {
}
# check for DT compatible documentation
- if (defined $root && $realfile =~ /\.dts/ &&
- $rawline =~ /^\+\s*compatible\s*=/) {
+ if (defined $root &&
+ (($realfile =~ /\.dtsi?$/ && $line =~ /^\+\s*compatible\s*=\s*\"/) ||
+ ($realfile =~ /\.[ch]$/ && $line =~ /^\+.*\.compatible\s*=\s*\"/))) {
+
my @compats = $rawline =~ /\"([a-zA-Z0-9\-\,\.\+_]+)\"/g;
foreach my $compat (@compats) {
--
1.8.5.3
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v3 4/4] checkpatch: improve the compatible vendor match
2014-03-07 13:26 ` [PATCH v3 4/4] checkpatch: improve the compatible vendor match Florian Vaussard
@ 2014-03-07 13:38 ` Florian Vaussard
0 siblings, 0 replies; 10+ messages in thread
From: Florian Vaussard @ 2014-03-07 13:38 UTC (permalink / raw)
To: Andy Whitcroft, Joe Perches; +Cc: Rob Herring, devicetree, linux-kernel
From: Joe Perches <joe@perches.com>
Improve the vendor name match in vendor-prefix.txt
by only matching the exact vendor name at the beginning of lines.
Signed-off-by: Joe Perches <joe@perches.com>
[florian.vaussard@epfl.ch: split patch, commit log]
Signed-off-by: Florian Vaussard <florian.vaussard@epfl.ch>
---
scripts/checkpatch.pl | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 9205153..5bda9f7 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -2047,9 +2047,11 @@ sub process {
my @compats = $rawline =~ /\"([a-zA-Z0-9\-\,\.\+_]+)\"/g;
+ my $dt_path = $root . "/Documentation/devicetree/bindings/";
+ my $vp_file = $dt_path . "vendor-prefixes.txt";
+
foreach my $compat (@compats) {
my $compat2 = $compat;
- my $dt_path = $root . "/Documentation/devicetree/bindings/";
$compat2 =~ s/\,[a-z]*\-/\,<\.\*>\-/;
`grep -Erq "$compat|$compat2" $dt_path`;
if ( $? >> 8 ) {
@@ -2057,14 +2059,12 @@ sub process {
"DT compatible string \"$compat\" appears un-documented -- check $dt_path\n" . $herecurr);
}
- my $vendor_path = $dt_path . "vendor-prefixes.txt";
- next if (! -f $vendor_path);
next if $compat !~ /^([a-zA-Z0-9\-]+)\,/;
my $vendor = $1;
- `grep -Eq "$vendor" $vendor_path`;
+ `grep -Eq "^$vendor\\b" $vp_file`;
if ( $? >> 8 ) {
WARN("UNDOCUMENTED_DT_STRING",
- "DT compatible string vendor \"$vendor\" appears un-documented -- check $vendor_path\n" . $herecurr);
+ "DT compatible string vendor \"$vendor\" appears un-documented -- check $vp_file\n" . $herecurr);
}
}
}
--
1.8.5.3
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v3 0/4] checkpatch: enhance compatible string checking
[not found] ` <1394198771-25913-1-git-send-email-florian.vaussard-p8DiymsW2f8@public.gmane.org>
2014-03-07 13:26 ` [PATCH v3 2/4] checkpatch: fix spurious vendor compatible warnings Florian Vaussard
2014-03-07 13:26 ` [PATCH v3 4/4] checkpatch: improve the compatible vendor match Florian Vaussard
@ 2014-03-07 16:08 ` Joe Perches
2014-03-07 16:53 ` Florian Vaussard
2 siblings, 1 reply; 10+ messages in thread
From: Joe Perches @ 2014-03-07 16:08 UTC (permalink / raw)
To: Florian Vaussard
Cc: Andy Whitcroft, Rob Herring, devicetree-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA
On Fri, 2014-03-07 at 14:26 +0100, Florian Vaussard wrote:
> Joe: I have split your patch to perform atomic changes. I also
> merged one part into one of my patch. I added your S-o-B on the
> corresponding patches, I let you check if you are OK with the changes.
Could you please send a clean V4 without my SOB and add
Andrew Morton <akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org> to the cc's?
Andrew is generally the path to get checkpatch changes
upstream.
Thanks. Joe
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 0/4] checkpatch: enhance compatible string checking
2014-03-07 16:08 ` [PATCH v3 0/4] checkpatch: enhance compatible string checking Joe Perches
@ 2014-03-07 16:53 ` Florian Vaussard
0 siblings, 0 replies; 10+ messages in thread
From: Florian Vaussard @ 2014-03-07 16:53 UTC (permalink / raw)
To: Joe Perches; +Cc: Andy Whitcroft, Rob Herring, devicetree, linux-kernel
On 03/07/2014 05:08 PM, Joe Perches wrote:
> On Fri, 2014-03-07 at 14:26 +0100, Florian Vaussard wrote:
>> Joe: I have split your patch to perform atomic changes. I also
>> merged one part into one of my patch. I added your S-o-B on the
>> corresponding patches, I let you check if you are OK with the changes.
>
> Could you please send a clean V4 without my SOB and add
> Andrew Morton <akpm@linux-foundation.org> to the cc's?
>
Do I remove your SOB from all 4 patches?
> Andrew is generally the path to get checkpatch changes
> upstream.
>
Sure.
Regards,
Florian
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2014-03-07 16:53 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-07 13:26 [PATCH v3 0/4] checkpatch: enhance compatible string checking Florian Vaussard
2014-03-07 13:26 ` [PATCH v3 1/4] checkpatch: check vendor compatible with dashes Florian Vaussard
2014-03-07 13:26 ` [PATCH v3 3/4] checkpatch: check compatible strings in .c and .h too Florian Vaussard
[not found] ` <1394198771-25913-4-git-send-email-florian.vaussard-p8DiymsW2f8@public.gmane.org>
2014-03-07 13:29 ` Florian Vaussard
2014-03-07 13:34 ` Florian Vaussard
[not found] ` <1394198771-25913-1-git-send-email-florian.vaussard-p8DiymsW2f8@public.gmane.org>
2014-03-07 13:26 ` [PATCH v3 2/4] checkpatch: fix spurious vendor compatible warnings Florian Vaussard
2014-03-07 13:26 ` [PATCH v3 4/4] checkpatch: improve the compatible vendor match Florian Vaussard
2014-03-07 13:38 ` Florian Vaussard
2014-03-07 16:08 ` [PATCH v3 0/4] checkpatch: enhance compatible string checking Joe Perches
2014-03-07 16:53 ` Florian Vaussard
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).