The kernel provides the __nonnull_args() macro as the preferred form for
marking pointer arguments as non-NULL. Add a check suggesting the macro
over the raw __attribute__((nonnull)) spelling, consistent with the
existing attribute conversion suggestions.

Examples:

  WARNING: Prefer __nonnull_args(1, 2) over __attribute__((nonnull(1, 2)))
  #11: FILE: drivers/soc/aspeed/aspeed-lpc-snoop.c:230:
  +__attribute__((nonnull(1, 2)))

  WARNING: Prefer __nonnull_args() over __attribute__((nonnull))
  #11: FILE: drivers/soc/aspeed/aspeed-lpc-snoop.c:283:
  +__attribute__((nonnull))

Signed-off-by: Dmitry Ilvokhin <[email protected]>
---
 scripts/checkpatch.pl | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index c9840f5219c2..e696fcd02337 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -6856,6 +6856,7 @@ sub process {
                                "no_caller_saved_registers"     => 
"__no_caller_saved_registers",
                                "noclone"                       => "__noclone",
                                "noinline"                      => "noinline",
+                               "nonnull"                       => 
"__nonnull_args",
                                "nonstring"                     => 
"__nonstring",
                                "noreturn"                      => "__noreturn",
                                "packed"                        => "__packed",
@@ -6876,6 +6877,8 @@ sub process {
                                        if ($curr_attr eq "format" && $params) {
                                                $params =~ 
/^\s*\(\s*(\w+)\s*,\s*(.*)/;
                                                $new = "__$1\($2";
+                                       } elsif ($curr_attr eq "nonnull" && 
$params eq "") {
+                                               $new = "$new()";
                                        } else {
                                                $new = "$new$params";
                                        }
-- 
2.53.0-Meta

Reply via email to