Commit 2b7ab453 authored by Joe Perches's avatar Joe Perches Committed by Linus Torvalds

checkpatch: don't require kernel style __attribute__ shortcuts in uapi paths

Avoid prescribing kernel styled shortcuts for gcc extensions of
__attribute__((foo)) in the uapi include paths.

Fix $realfile filename when using -f/--file to not remove first level
directory as if the filename was used in a -P1 patch.  Only strip the
first level directory (typically a or b) for P1 patches.
Signed-off-by: default avatarJoe Perches <joe@perches.com>
Cc: "Dixit, Ashutosh" <ashutosh.dixit@intel.com>
Cc: Andy Whitcroft <apw@canonical.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 507e5141
...@@ -1769,11 +1769,11 @@ sub process { ...@@ -1769,11 +1769,11 @@ sub process {
# extract the filename as it passes # extract the filename as it passes
if ($line =~ /^diff --git.*?(\S+)$/) { if ($line =~ /^diff --git.*?(\S+)$/) {
$realfile = $1; $realfile = $1;
$realfile =~ s@^([^/]*)/@@; $realfile =~ s@^([^/]*)/@@ if (!$file);
$in_commit_log = 0; $in_commit_log = 0;
} elsif ($line =~ /^\+\+\+\s+(\S+)/) { } elsif ($line =~ /^\+\+\+\s+(\S+)/) {
$realfile = $1; $realfile = $1;
$realfile =~ s@^([^/]*)/@@; $realfile =~ s@^([^/]*)/@@ if (!$file);
$in_commit_log = 0; $in_commit_log = 0;
$p1_prefix = $1; $p1_prefix = $1;
...@@ -3877,7 +3877,8 @@ sub process { ...@@ -3877,7 +3877,8 @@ sub process {
} }
# Check for __inline__ and __inline, prefer inline # Check for __inline__ and __inline, prefer inline
if ($line =~ /\b(__inline__|__inline)\b/) { if ($realfile !~ m@\binclude/uapi/@ &&
$line =~ /\b(__inline__|__inline)\b/) {
if (WARN("INLINE", if (WARN("INLINE",
"plain inline is preferred over $1\n" . $herecurr) && "plain inline is preferred over $1\n" . $herecurr) &&
$fix) { $fix) {
...@@ -3887,19 +3888,22 @@ sub process { ...@@ -3887,19 +3888,22 @@ sub process {
} }
# Check for __attribute__ packed, prefer __packed # Check for __attribute__ packed, prefer __packed
if ($line =~ /\b__attribute__\s*\(\s*\(.*\bpacked\b/) { if ($realfile !~ m@\binclude/uapi/@ &&
$line =~ /\b__attribute__\s*\(\s*\(.*\bpacked\b/) {
WARN("PREFER_PACKED", WARN("PREFER_PACKED",
"__packed is preferred over __attribute__((packed))\n" . $herecurr); "__packed is preferred over __attribute__((packed))\n" . $herecurr);
} }
# Check for __attribute__ aligned, prefer __aligned # Check for __attribute__ aligned, prefer __aligned
if ($line =~ /\b__attribute__\s*\(\s*\(.*aligned/) { if ($realfile !~ m@\binclude/uapi/@ &&
$line =~ /\b__attribute__\s*\(\s*\(.*aligned/) {
WARN("PREFER_ALIGNED", WARN("PREFER_ALIGNED",
"__aligned(size) is preferred over __attribute__((aligned(size)))\n" . $herecurr); "__aligned(size) is preferred over __attribute__((aligned(size)))\n" . $herecurr);
} }
# Check for __attribute__ format(printf, prefer __printf # Check for __attribute__ format(printf, prefer __printf
if ($line =~ /\b__attribute__\s*\(\s*\(\s*format\s*\(\s*printf/) { if ($realfile !~ m@\binclude/uapi/@ &&
$line =~ /\b__attribute__\s*\(\s*\(\s*format\s*\(\s*printf/) {
if (WARN("PREFER_PRINTF", if (WARN("PREFER_PRINTF",
"__printf(string-index, first-to-check) is preferred over __attribute__((format(printf, string-index, first-to-check)))\n" . $herecurr) && "__printf(string-index, first-to-check) is preferred over __attribute__((format(printf, string-index, first-to-check)))\n" . $herecurr) &&
$fix) { $fix) {
...@@ -3909,7 +3913,8 @@ sub process { ...@@ -3909,7 +3913,8 @@ sub process {
} }
# Check for __attribute__ format(scanf, prefer __scanf # Check for __attribute__ format(scanf, prefer __scanf
if ($line =~ /\b__attribute__\s*\(\s*\(\s*format\s*\(\s*scanf\b/) { if ($realfile !~ m@\binclude/uapi/@ &&
$line =~ /\b__attribute__\s*\(\s*\(\s*format\s*\(\s*scanf\b/) {
if (WARN("PREFER_SCANF", if (WARN("PREFER_SCANF",
"__scanf(string-index, first-to-check) is preferred over __attribute__((format(scanf, string-index, first-to-check)))\n" . $herecurr) && "__scanf(string-index, first-to-check) is preferred over __attribute__((format(scanf, string-index, first-to-check)))\n" . $herecurr) &&
$fix) { $fix) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment