* [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 2/4] checkpatch: fix spurious vendor compatible warnings Florian Vaussard
` (3 subsequent siblings)
4 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
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
2014-03-07 13:26 ` [PATCH v3 3/4] checkpatch: check compatible strings in .c and .h too Florian Vaussard
` (2 subsequent siblings)
4 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
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@epfl.ch>
[joe@perches.com: cleaned the implementation]
Signed-off-by: Joe Perches <joe@perches.com>
---
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
^ 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 ` [PATCH v3 2/4] checkpatch: fix spurious vendor compatible warnings Florian Vaussard
@ 2014-03-07 13:26 ` Florian Vaussard
2014-03-07 13:29 ` Florian Vaussard
2014-03-07 13:34 ` 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
4 siblings, 2 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
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* Re: [PATCH v3 3/4] checkpatch: check compatible strings in .c and .h too
2014-03-07 13:26 ` [PATCH v3 3/4] checkpatch: check compatible strings in .c and .h too Florian Vaussard
@ 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, linux-kernel
On 03/07/2014 02:26 PM, Florian Vaussard wrote:
> From: Joe Perches <joe@perches.com>
>
> From: Joe Perches <joe@perches.com>
>
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@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) {
>
^ permalink raw reply [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 3/4] checkpatch: check compatible strings in .c and .h too Florian Vaussard
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, linux-kernel
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
2014-03-07 13:26 [PATCH v3 0/4] checkpatch: enhance compatible string checking Florian Vaussard
` (2 preceding siblings ...)
2014-03-07 13:26 ` [PATCH v3 3/4] checkpatch: check compatible strings in .c and .h too 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
4 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>
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* [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
2014-03-07 13:26 [PATCH v3 0/4] checkpatch: enhance compatible string checking Florian Vaussard
` (3 preceding siblings ...)
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
4 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, linux-kernel
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?
Andrew is generally the path to get checkpatch changes
upstream.
Thanks. Joe
^ 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