]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
cleanup: Specify nonnull argument index
authorDmitry Ilvokhin <d@ilvokhin.com>
Fri, 5 Jun 2026 10:06:22 +0000 (03:06 -0700)
committerPeter Zijlstra <peterz@infradead.org>
Fri, 5 Jun 2026 12:46:51 +0000 (14:46 +0200)
The guard constructors were annotated with an empty __nonnull_args(),
relying on __nonnull__() marking every pointer parameter as non-NULL.
Sparse cannot parse the empty argument list.

Both constructors take the lock pointer as their first parameter, so
specify the index explicitly: __nonnull_args(1).

Reported-by: Dan Carpenter <error27@gmail.com>
Closes: https://lore.kernel.org/all/aiJi0WcYE8FZt-jO@stanley.mountain/
Signed-off-by: Dmitry Ilvokhin <d@ilvokhin.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://patch.msgid.link/aiKpH3cLBEj3TF2Q@shell.ilvokhin.com
include/linux/cleanup.h

index 65416938e318db52bdc49a9fcc9e84c1ac0b382b..b1b5698cbf1b6f8ad99d10b49ce8de14a1629172 100644 (file)
@@ -397,7 +397,7 @@ static __maybe_unused const bool class_##_name##_is_conditional = _is_cond
        __DEFINE_GUARD_LOCK_PTR(_name, _T)
 
 #define DEFINE_GUARD(_name, _type, _lock, _unlock) \
-       static __always_inline __nonnull_args() _type class_##_name##_constructor(_type _T); \
+       static __always_inline __nonnull_args(1) _type class_##_name##_constructor(_type _T); \
        DEFINE_CLASS(_name, _type, _unlock, ({ _lock; _T; }), _type _T); \
        DEFINE_CLASS_IS_GUARD(_name)
 
@@ -498,7 +498,7 @@ static __always_inline void class_##_name##_destructor(class_##_name##_t *_T) \
 __DEFINE_GUARD_LOCK_PTR(_name, &_T->lock)
 
 #define __DEFINE_LOCK_GUARD_1(_name, _type, ...)                       \
-static __always_inline __nonnull_args()                                        \
+static __always_inline __nonnull_args(1)                               \
 class_##_name##_t class_##_name##_constructor(_type *l)                        \
        __no_context_analysis                                           \
 {                                                                      \