mirror of
https://github.com/torvalds/linux.git
synced 2024-12-28 22:02:28 +00:00
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: Joe Perches <joe@perches.com> Cc: "Dixit, Ashutosh" <ashutosh.dixit@intel.com> Cc: Andy Whitcroft <apw@canonical.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
507e51418c
commit
2b7ab45395
@ -1769,11 +1769,11 @@ sub process {
|
||||
# extract the filename as it passes
|
||||
if ($line =~ /^diff --git.*?(\S+)$/) {
|
||||
$realfile = $1;
|
||||
$realfile =~ s@^([^/]*)/@@;
|
||||
$realfile =~ s@^([^/]*)/@@ if (!$file);
|
||||
$in_commit_log = 0;
|
||||
} elsif ($line =~ /^\+\+\+\s+(\S+)/) {
|
||||
$realfile = $1;
|
||||
$realfile =~ s@^([^/]*)/@@;
|
||||
$realfile =~ s@^([^/]*)/@@ if (!$file);
|
||||
$in_commit_log = 0;
|
||||
|
||||
$p1_prefix = $1;
|
||||
@ -3877,7 +3877,8 @@ sub process {
|
||||
}
|
||||
|
||||
# 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",
|
||||
"plain inline is preferred over $1\n" . $herecurr) &&
|
||||
$fix) {
|
||||
@ -3887,19 +3888,22 @@ sub process {
|
||||
}
|
||||
|
||||
# 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",
|
||||
"__packed is preferred over __attribute__((packed))\n" . $herecurr);
|
||||
}
|
||||
|
||||
# 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",
|
||||
"__aligned(size) is preferred over __attribute__((aligned(size)))\n" . $herecurr);
|
||||
}
|
||||
|
||||
# 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",
|
||||
"__printf(string-index, first-to-check) is preferred over __attribute__((format(printf, string-index, first-to-check)))\n" . $herecurr) &&
|
||||
$fix) {
|
||||
@ -3909,7 +3913,8 @@ sub process {
|
||||
}
|
||||
|
||||
# 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",
|
||||
"__scanf(string-index, first-to-check) is preferred over __attribute__((format(scanf, string-index, first-to-check)))\n" . $herecurr) &&
|
||||
$fix) {
|
||||
|
Loading…
Reference in New Issue
Block a user