From: Sean Chang <seanwascoding@gmail.com>
To: Andrew Lunn <andrew@lunn.ch>,
Chuck Lever <chuck.lever@oracle.com>,
David Laight <david.laight.linux@gmail.com>,
nicolas.ferre@microchip.com, claudiu.beznea@tuxon.dev,
trond.myklebust@hammerspace.com, anna@kernel.org
Cc: netdev@vger.kernel.org, linux-nfs@vger.kernel.org,
linux-kernel@vger.kernel.org,
Sean Chang <seanwascoding@gmail.com>,
kernel test robot <lkp@intel.com>
Subject: [PATCH v6 1/2] sunrpc: simplify dprintk macros and cleanup redundant debug guards
Date: Mon, 2 Mar 2026 00:17:08 +0800 [thread overview]
Message-ID: <20260301161709.1365975-2-seanwascoding@gmail.com> (raw)
In-Reply-To: <20260301161709.1365975-1-seanwascoding@gmail.com>
When CONFIG_SUNRPC_DEBUG is disabled, the dfprintk() macros currently
expand to empty do-while loops. This causes variables used solely
within these calls to appear unused, triggering -Wunused-variable
warnings.
Following David Laight's suggestion, simplify the macro definitions by
removing the unnecessary 'fmt' argument and using no_printk(__VA_ARGS__)
directly. This ensures the compiler performs type checking and "sees"
the variables, silencing the warnings without emitting any code.
Verification with .lst files under -O2 confirms that the compiler
successfully performs "dead code elimination". Even when variables
(like char buf[] in nfsfh.c) or static helper functions (like
nlmdbg_cookie2a in svclock.c) are declared without #ifdef, they are
completely optimized out (no stack allocation, no symbol references in
the final executable) as they are only referenced within no_printk().
This allows for significant cleanup:
- Remove RPC_IFDEBUG() and associated #if blocks in fs/nfsd/nfsfh.c
and net/sunrpc/xprtrdma/svc_rdma_transport.c.
- Remove the #if IS_ENABLED(CONFIG_SUNRPC_DEBUG) guard around
nlmdbg_cookie2a in fs/lockd/svclock.c.
- Consolidate the dprintk definition to be more idiomatic.
This fixes the build errors reported by the kernel test robot while
improving code maintainability.
Link: https://lore.kernel.org/all/69a2e269.050a0220.3a55be.003e.GAE@google.com/
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202603010612.uRmHYMsi-lkp@intel.com/
Closes: https://lore.kernel.org/oe-kbuild-all/202603010852.3RKXCwyF-lkp@intel.com/
Closes: https://lore.kernel.org/oe-kbuild-all/202603010808.w3TtG6fC-lkp@intel.com/
Suggested-by: Andrew Lunn <andrew@lunn.ch>
Suggested-by: David Laight <david.laight.linux@gmail.com>
Signed-off-by: Sean Chang <seanwascoding@gmail.com>
---
fs/lockd/svclock.c | 2 --
fs/nfsd/nfsfh.c | 2 +-
include/linux/sunrpc/debug.h | 6 ++----
net/sunrpc/xprtrdma/svc_rdma_transport.c | 4 +---
4 files changed, 4 insertions(+), 10 deletions(-)
diff --git a/fs/lockd/svclock.c b/fs/lockd/svclock.c
index 255a847ca0b6..4bac32f009f6 100644
--- a/fs/lockd/svclock.c
+++ b/fs/lockd/svclock.c
@@ -53,7 +53,6 @@ static const struct rpc_call_ops nlmsvc_grant_ops;
static LIST_HEAD(nlm_blocked);
static DEFINE_SPINLOCK(nlm_blocked_lock);
-#if IS_ENABLED(CONFIG_SUNRPC_DEBUG)
static const char *nlmdbg_cookie2a(const struct nlm_cookie *cookie)
{
/*
@@ -80,7 +79,6 @@ static const char *nlmdbg_cookie2a(const struct nlm_cookie *cookie)
return buf;
}
-#endif
/*
* Insert a blocked lock into the global list
diff --git a/fs/nfsd/nfsfh.c b/fs/nfsd/nfsfh.c
index ed85dd43da18..cb3fb91d18c0 100644
--- a/fs/nfsd/nfsfh.c
+++ b/fs/nfsd/nfsfh.c
@@ -105,7 +105,7 @@ static __be32 nfsd_setuser_and_check_port(struct svc_rqst *rqstp,
{
/* Check if the request originated from a secure port. */
if (rqstp && !nfsd_originating_port_ok(rqstp, cred, exp)) {
- RPC_IFDEBUG(char buf[RPC_MAX_ADDRBUFLEN]);
+ char buf[RPC_MAX_ADDRBUFLEN];
dprintk("nfsd: request from insecure port %s!\n",
svc_print_addr(rqstp, buf, sizeof(buf)));
return nfserr_perm;
diff --git a/include/linux/sunrpc/debug.h b/include/linux/sunrpc/debug.h
index eb4bd62df319..f6f2a106eeaf 100644
--- a/include/linux/sunrpc/debug.h
+++ b/include/linux/sunrpc/debug.h
@@ -49,12 +49,10 @@ do { \
} \
} while (0)
-# define RPC_IFDEBUG(x) x
#else
# define ifdebug(fac) if (0)
-# define dfprintk(fac, fmt, ...) do {} while (0)
-# define dfprintk_rcu(fac, fmt, ...) do {} while (0)
-# define RPC_IFDEBUG(x)
+# define dfprintk(fac, ...) no_printk(__VA_ARGS__)
+# define dfprintk_rcu(fac, ...) no_printk(__VA_ARGS__)
#endif
/*
diff --git a/net/sunrpc/xprtrdma/svc_rdma_transport.c b/net/sunrpc/xprtrdma/svc_rdma_transport.c
index 9b623849723e..ba6fe0fd387d 100644
--- a/net/sunrpc/xprtrdma/svc_rdma_transport.c
+++ b/net/sunrpc/xprtrdma/svc_rdma_transport.c
@@ -414,7 +414,7 @@ static struct svc_xprt *svc_rdma_accept(struct svc_xprt *xprt)
struct ib_qp_init_attr qp_attr;
struct ib_device *dev;
int ret = 0;
- RPC_IFDEBUG(struct sockaddr *sap);
+ struct sockaddr *sap;
listen_rdma = container_of(xprt, struct svcxprt_rdma, sc_xprt);
clear_bit(XPT_CONN, &xprt->xpt_flags);
@@ -560,7 +560,6 @@ static struct svc_xprt *svc_rdma_accept(struct svc_xprt *xprt)
goto errout;
}
-#if IS_ENABLED(CONFIG_SUNRPC_DEBUG)
dprintk("svcrdma: new connection accepted on device %s:\n", dev->name);
sap = (struct sockaddr *)&newxprt->sc_cm_id->route.addr.src_addr;
dprintk(" local address : %pIS:%u\n", sap, rpc_get_port(sap));
@@ -571,7 +570,6 @@ static struct svc_xprt *svc_rdma_accept(struct svc_xprt *xprt)
dprintk(" rdma_rw_ctxs : %d\n", ctxts);
dprintk(" max_requests : %d\n", newxprt->sc_max_requests);
dprintk(" ord : %d\n", conn_param.initiator_depth);
-#endif
return &newxprt->sc_xprt;
--
2.34.1
next prev parent reply other threads:[~2026-03-01 16:17 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-01 16:17 [PATCH v6 0/2] Fix compiler warnings/errors in SUNRPC and MACB Sean Chang
2026-03-01 16:17 ` Sean Chang [this message]
2026-03-02 13:27 ` [PATCH v6 1/2] sunrpc: simplify dprintk macros and cleanup redundant debug guards Andy Shevchenko
2026-03-01 16:17 ` [PATCH v6 2/2] net: macb: use ethtool_sprintf to fill ethtool stats strings Sean Chang
2026-03-01 17:39 ` [PATCH v6 0/2] Fix compiler warnings/errors in SUNRPC and MACB Andrew Lunn
2026-03-02 13:26 ` Andy Shevchenko
2026-03-02 16:28 ` Sean Chang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260301161709.1365975-2-seanwascoding@gmail.com \
--to=seanwascoding@gmail.com \
--cc=andrew@lunn.ch \
--cc=anna@kernel.org \
--cc=chuck.lever@oracle.com \
--cc=claudiu.beznea@tuxon.dev \
--cc=david.laight.linux@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=lkp@intel.com \
--cc=netdev@vger.kernel.org \
--cc=nicolas.ferre@microchip.com \
--cc=trond.myklebust@hammerspace.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.