diff options
Diffstat (limited to 'scripts/checkpatch.pl')
| -rwxr-xr-x | scripts/checkpatch.pl | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index b351805149a5..3661ffc7af23 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl | |||
| @@ -4487,22 +4487,23 @@ sub process { | |||
| 4487 | 4487 | ||
| 4488 | # check for k[mz]alloc with multiplies that could be kmalloc_array/kcalloc | 4488 | # check for k[mz]alloc with multiplies that could be kmalloc_array/kcalloc |
| 4489 | if ($^V && $^V ge 5.10.0 && | 4489 | if ($^V && $^V ge 5.10.0 && |
| 4490 | $line =~ /\b($Lval)\s*\=\s*(?:$balanced_parens)?\s*(k[mz]alloc)\s*\(\s*($FuncArg)\s*\*\s*($FuncArg)/) { | 4490 | $line =~ /\b($Lval)\s*\=\s*(?:$balanced_parens)?\s*(k[mz]alloc)\s*\(\s*($FuncArg)\s*\*\s*($FuncArg)\s*,/) { |
| 4491 | my $oldfunc = $3; | 4491 | my $oldfunc = $3; |
| 4492 | my $a1 = $4; | 4492 | my $a1 = $4; |
| 4493 | my $a2 = $10; | 4493 | my $a2 = $10; |
| 4494 | my $newfunc = "kmalloc_array"; | 4494 | my $newfunc = "kmalloc_array"; |
| 4495 | $newfunc = "kcalloc" if ($oldfunc eq "kzalloc"); | 4495 | $newfunc = "kcalloc" if ($oldfunc eq "kzalloc"); |
| 4496 | if ($a1 =~ /^sizeof\s*\S/ || $a2 =~ /^sizeof\s*\S/) { | 4496 | my $r1 = $a1; |
| 4497 | my $r2 = $a2; | ||
| 4498 | if ($a1 =~ /^sizeof\s*\S/) { | ||
| 4499 | $r1 = $a2; | ||
| 4500 | $r2 = $a1; | ||
| 4501 | } | ||
| 4502 | if ($r1 !~ /^sizeof\b/ && $r2 =~ /^sizeof\s*\S/ && | ||
| 4503 | !($r1 =~ /^$Constant$/ || $r1 =~ /^[A-Z_][A-Z0-9_]*$/)) { | ||
| 4497 | if (WARN("ALLOC_WITH_MULTIPLY", | 4504 | if (WARN("ALLOC_WITH_MULTIPLY", |
| 4498 | "Prefer $newfunc over $oldfunc with multiply\n" . $herecurr) && | 4505 | "Prefer $newfunc over $oldfunc with multiply\n" . $herecurr) && |
| 4499 | $fix) { | 4506 | $fix) { |
| 4500 | my $r1 = $a1; | ||
| 4501 | my $r2 = $a2; | ||
| 4502 | if ($a1 =~ /^sizeof\s*\S/) { | ||
| 4503 | $r1 = $a2; | ||
| 4504 | $r2 = $a1; | ||
| 4505 | } | ||
| 4506 | $fixed[$linenr - 1] =~ s/\b($Lval)\s*\=\s*(?:$balanced_parens)?\s*(k[mz]alloc)\s*\(\s*($FuncArg)\s*\*\s*($FuncArg)/$1 . ' = ' . "$newfunc(" . trim($r1) . ', ' . trim($r2)/e; | 4507 | $fixed[$linenr - 1] =~ s/\b($Lval)\s*\=\s*(?:$balanced_parens)?\s*(k[mz]alloc)\s*\(\s*($FuncArg)\s*\*\s*($FuncArg)/$1 . ' = ' . "$newfunc(" . trim($r1) . ', ' . trim($r2)/e; |
| 4507 | 4508 | ||
| 4508 | } | 4509 | } |
