[PATCH v5 1/5] sunrpc: Fix dprintk type mismatch using do-while(0)

Sean Chang
2026-03-21T14:15:30Z

Following David Laight's suggestion, simplify the macro definitions by removing
the unnecessary 'fmt' argument and using no_printk(VA_ARGS) directly.

To resolve a Sparse warning (void vs int mismatch) when dfprintk is used in
conditional statements, wrap the non-debug definition in a do-while(0) block.
This ensures the macro always evaluates to a void expression.

Suggested-by: David Laight <david.laight.linux@gmail.com>
Signed-off-by: Sean Chang <seanwascoding@gmail.com>
---
include/linux/sunrpc/debug.h | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/include/linux/sunrpc/debug.h b/include/linux/sunrpc/debug.h
index ab61bed2f7af..f6f2a106eeaf 100644
--- a/include/linux/sunrpc/debug.h
+++ b/include/linux/sunrpc/debug.h
@@ -38,8 +38,6 @@ extern unsigned int nlm_debug;
do { \
ifdebug(fac) \
__sunrpc_printk(fmt, ##__VA_ARGS__); \
- else \
- no_printk(fmt, ##__VA_ARGS__); \
} while (0)

# define dfprintk_rcu(fac, fmt, ...) \
@@ -48,15 +46,13 @@ do { \
rcu_read_lock(); \
__sunrpc_printk(fmt, ##__VA_ARGS__); \
rcu_read_unlock(); \
- } else { \
- no_printk(fmt, ##__VA_ARGS__); \
} \
} while (0)

#else
# define ifdebug(fac) if (0)
-# define dfprintk(fac, fmt, ...) no_printk(fmt, ##__VA_ARGS__)
-# define dfprintk_rcu(fac, fmt, ...) no_printk(fmt, ##__VA_ARGS__)
+# define dfprintk(fac, ...) no_printk(__VA_ARGS__)
+# define dfprintk_rcu(fac, ...) no_printk(__VA_ARGS__)
#endif

/*
--
2.34.1