diff options
| author | Rob Herring (Arm) <robh@kernel.org> | 2026-08-31 14:43:51 -0500 |
|---|---|---|
| committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2026-09-13 18:17:31 -0700 |
| commit | 55fc280e951ab2b39f3dcb640edc1b1eebc6d173 (patch) | |
| tree | f0b5f37b42fc13b9908a31b657c646b024231cdd /scripts/checkversion.pl | |
| download | linux-stable-55fc280e951ab2b39f3dcb640edc1b1eebc6d173.tar.gz linux-stable-55fc280e951ab2b39f3dcb640edc1b1eebc6d173.zip | |
Input: tsc2007 - read "ti,poll-period" as u32grafted
The "ti,poll-period" property is documented as a normal uint32 cell.
The driver used a u64 helper, which makes the helper type disagree with
the schema even though the stored value is still small.
Read "ti,poll-period" with the u32 helper matching the documented DT
cell size.
Assisted-by: Codex:gpt-5-5
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://patch.msgid.link/20260831194352.1185860-1-robh@kernel.org
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Diffstat (limited to 'scripts/checkversion.pl')
| -rwxr-xr-x | scripts/checkversion.pl | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/scripts/checkversion.pl b/scripts/checkversion.pl new file mode 100755 index 000000000..94cd49eff --- /dev/null +++ b/scripts/checkversion.pl @@ -0,0 +1,76 @@ +#! /usr/bin/env perl +# SPDX-License-Identifier: GPL-2.0 +# +# checkversion finds uses of all macros in <linux/version.h> +# where the source files do not #include <linux/version.h>; or cases +# of including <linux/version.h> where it is not needed. +# Copyright (C) 2003, Randy Dunlap <rdunlap@infradead.org> + +use strict; + +$| = 1; + +my $debugging; + +foreach my $file (@ARGV) { + next if $file =~ "include/generated/uapi/linux/version\.h"; + next if $file =~ "usr/include/linux/version\.h"; + # Open this file. + open( my $f, '<', $file ) + or die "Can't open $file: $!\n"; + + # Initialize variables. + my ($fInComment, $fInString, $fUseVersion); + my $iLinuxVersion = 0; + + while (<$f>) { + # Strip comments. + $fInComment && (s+^.*?\*/+ +o ? ($fInComment = 0) : next); + m+/\*+o && (s+/\*.*?\*/+ +go, (s+/\*.*$+ +o && ($fInComment = 1))); + + # Pick up definitions. + if ( m/^\s*#/o ) { + $iLinuxVersion = $. if m/^\s*#\s*include\s*"linux\/version\.h"/o; + } + + # Strip strings. + $fInString && (s+^.*?"+ +o ? ($fInString = 0) : next); + m+"+o && (s+".*?"+ +go, (s+".*$+ +o && ($fInString = 1))); + + # Pick up definitions. + if ( m/^\s*#/o ) { + $iLinuxVersion = $. if m/^\s*#\s*include\s*<linux\/version\.h>/o; + } + + # Look for uses: LINUX_VERSION_CODE, KERNEL_VERSION, + # LINUX_VERSION_MAJOR, LINUX_VERSION_PATCHLEVEL, LINUX_VERSION_SUBLEVEL + if (($_ =~ /LINUX_VERSION_CODE/) || ($_ =~ /\WKERNEL_VERSION/) || + ($_ =~ /LINUX_VERSION_MAJOR/) || ($_ =~ /LINUX_VERSION_PATCHLEVEL/) || + ($_ =~ /LINUX_VERSION_SUBLEVEL/)) { + $fUseVersion = 1; + last if $iLinuxVersion; + } + } + + # Report used version IDs without include? + if ($fUseVersion && ! $iLinuxVersion) { + print "$file: $.: need linux/version.h\n"; + } + + # Report superfluous includes. + if ($iLinuxVersion && ! $fUseVersion) { + print "$file: $iLinuxVersion linux/version.h not needed.\n"; + } + + # debug: report OK results: + if ($debugging) { + if ($iLinuxVersion && $fUseVersion) { + print "$file: version use is OK ($iLinuxVersion)\n"; + } + if (! $iLinuxVersion && ! $fUseVersion) { + print "$file: version use is OK (none)\n"; + } + } + + close($f); +} |
