public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/2] Fix warnings for RISC-V builds
@ 2026-02-24 16:54 Sean Chang
  2026-02-24 16:54 ` [PATCH v3 1/2] nfs: fix unused variable warning when CONFIG_SUNRPC_DEBUG is disabled Sean Chang
  2026-02-24 16:54 ` [PATCH v3 2/2] net: macb: use ethtool_sprintf to fill ethtool stats strings Sean Chang
  0 siblings, 2 replies; 6+ messages in thread
From: Sean Chang @ 2026-02-24 16:54 UTC (permalink / raw)
  To: Andrew Lunn, nicolas.ferre, claudiu.beznea, trond.myklebust, anna
  Cc: netdev, linux-nfs, linux-kernel, Sean Chang

This series addresses several compiler warnings found when building the
kernel for RISC-V.

The first patch fixes unused variable warnings in the NFS client (including
nfs4proc and flexfilelayout) that occur in certain build configurations.

The second patch fixes a format-truncation warning in the MACB ethernet
driver by ensuring the snprintf output fits within the destination buffer.

v3:
- Expand commit descriptions to include technical details regarding macro
expansion, as requested by Andrew Lunn.
- Test the different platform, such as ARM, ARM64, X86_64.

v2:
- Split the original treewide patch into subsystem-specific commits.
- Added more detailed commit descriptions to satisfy checkpatch.

Sean Chang (2):
  nfs: fix unused variable warning when CONFIG_SUNRPC_DEBUG is disabled
  net: macb: use ethtool_sprintf to fill ethtool stats strings

 drivers/net/ethernet/cadence/macb_main.c  | 7 ++-----
 fs/nfs/flexfilelayout/flexfilelayout.c    | 2 +-
 fs/nfs/flexfilelayout/flexfilelayoutdev.c | 3 ++-
 fs/nfs/nfs4proc.c                         | 2 +-
 4 files changed, 6 insertions(+), 8 deletions(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v3 1/2] nfs: fix unused variable warning when CONFIG_SUNRPC_DEBUG is disabled
  2026-02-24 16:54 [PATCH v3 0/2] Fix warnings for RISC-V builds Sean Chang
@ 2026-02-24 16:54 ` Sean Chang
  2026-02-24 17:54   ` Andrew Lunn
  2026-02-24 16:54 ` [PATCH v3 2/2] net: macb: use ethtool_sprintf to fill ethtool stats strings Sean Chang
  1 sibling, 1 reply; 6+ messages in thread
From: Sean Chang @ 2026-02-24 16:54 UTC (permalink / raw)
  To: Andrew Lunn, nicolas.ferre, claudiu.beznea, trond.myklebust, anna
  Cc: netdev, linux-nfs, linux-kernel, Sean Chang

When CONFIG_SUNRPC_DEBUG is disabled, the dprintk() macro expands to
an empty do-while loop. This causes variables used solely within
dprintk() calls to appear unused to the compiler, triggering
-Wunused-variable warnings.

Fix this by adding __maybe_unused to the affected variables. This
ensures the code builds cleanly across different configurations,
including RISC-V, ARM, and ARM64 allmodconfig, as verified in the
mailing list discussion.

Signed-off-by: Sean Chang <seanwascoding@gmail.com>
---
 fs/nfs/flexfilelayout/flexfilelayout.c    | 2 +-
 fs/nfs/flexfilelayout/flexfilelayoutdev.c | 3 ++-
 fs/nfs/nfs4proc.c                         | 2 +-
 3 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/fs/nfs/flexfilelayout/flexfilelayout.c b/fs/nfs/flexfilelayout/flexfilelayout.c
index 9056f05a67dc..de9e8bad6af2 100644
--- a/fs/nfs/flexfilelayout/flexfilelayout.c
+++ b/fs/nfs/flexfilelayout/flexfilelayout.c
@@ -1502,7 +1502,7 @@ static void ff_layout_io_track_ds_error(struct pnfs_layout_segment *lseg,
 {
 	struct nfs4_ff_layout_mirror *mirror;
 	u32 status = *op_status;
-	int err;
+	int err __maybe_unused;
 
 	if (status == 0) {
 		switch (error) {
diff --git a/fs/nfs/flexfilelayout/flexfilelayoutdev.c b/fs/nfs/flexfilelayout/flexfilelayoutdev.c
index c2d8a13a9dbd..3fb8dba0abf5 100644
--- a/fs/nfs/flexfilelayout/flexfilelayoutdev.c
+++ b/fs/nfs/flexfilelayout/flexfilelayoutdev.c
@@ -53,7 +53,8 @@ nfs4_ff_alloc_deviceid_node(struct nfs_server *server, struct pnfs_device *pdev,
 	u32 mp_count;
 	u32 version_count;
 	__be32 *p;
-	int i, ret = -ENOMEM;
+	int i;
+	int ret __maybe_unused = -ENOMEM;
 
 	/* set up xdr stream */
 	scratch = folio_alloc(gfp_flags, 0);
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index 180229320731..f76c23cdc888 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -9241,7 +9241,7 @@ static int _nfs4_proc_create_session(struct nfs_client *clp,
 int nfs4_proc_create_session(struct nfs_client *clp, const struct cred *cred)
 {
 	int status;
-	unsigned *ptr;
+	unsigned *ptr __maybe_unused;
 	struct nfs4_session *session = clp->cl_session;
 	struct nfs4_add_xprt_data xprtdata = {
 		.clp = clp,
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v3 2/2] net: macb: use ethtool_sprintf to fill ethtool stats strings
  2026-02-24 16:54 [PATCH v3 0/2] Fix warnings for RISC-V builds Sean Chang
  2026-02-24 16:54 ` [PATCH v3 1/2] nfs: fix unused variable warning when CONFIG_SUNRPC_DEBUG is disabled Sean Chang
@ 2026-02-24 16:54 ` Sean Chang
  2026-02-24 17:55   ` Andrew Lunn
  1 sibling, 1 reply; 6+ messages in thread
From: Sean Chang @ 2026-02-24 16:54 UTC (permalink / raw)
  To: Andrew Lunn, nicolas.ferre, claudiu.beznea, trond.myklebust, anna
  Cc: netdev, linux-nfs, linux-kernel, Sean Chang

The RISC-V toolchain triggers a stringop-truncation warning when using
snprintf() with a fixed ETH_GSTRING_LEN (32 bytes) buffer.

Convert the driver to use the modern ethtool_sprintf() API from
linux/ethtool.h. This removes the need for manual snprintf() and
memcpy() calls, handles the 32-byte padding automatically, and
simplifies the logic by removing manual pointer arithmetic.

Signed-off-by: Sean Chang <seanwascoding@gmail.com>
---
 drivers/net/ethernet/cadence/macb_main.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
index 43cd013bb70e..616823e9fc5b 100644
--- a/drivers/net/ethernet/cadence/macb_main.c
+++ b/drivers/net/ethernet/cadence/macb_main.c
@@ -3145,7 +3145,6 @@ static int gem_get_sset_count(struct net_device *dev, int sset)
 
 static void gem_get_ethtool_strings(struct net_device *dev, u32 sset, u8 *p)
 {
-	char stat_string[ETH_GSTRING_LEN];
 	struct macb *bp = netdev_priv(dev);
 	struct macb_queue *queue;
 	unsigned int i;
@@ -3158,10 +3157,8 @@ static void gem_get_ethtool_strings(struct net_device *dev, u32 sset, u8 *p)
 			       ETH_GSTRING_LEN);
 
 		for (q = 0, queue = bp->queues; q < bp->num_queues; ++q, ++queue) {
-			for (i = 0; i < QUEUE_STATS_LEN; i++, p += ETH_GSTRING_LEN) {
-				snprintf(stat_string, ETH_GSTRING_LEN, "q%d_%s",
-						q, queue_statistics[i].stat_string);
-				memcpy(p, stat_string, ETH_GSTRING_LEN);
+			for (i = 0; i < QUEUE_STATS_LEN; i++) {
+				ethtool_sprintf(&p, "q%u_%s", q, queue_statistics[i].stat_string);
 			}
 		}
 		break;
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v3 1/2] nfs: fix unused variable warning when CONFIG_SUNRPC_DEBUG is disabled
  2026-02-24 16:54 ` [PATCH v3 1/2] nfs: fix unused variable warning when CONFIG_SUNRPC_DEBUG is disabled Sean Chang
@ 2026-02-24 17:54   ` Andrew Lunn
  2026-02-25 16:30     ` Sean Chang
  0 siblings, 1 reply; 6+ messages in thread
From: Andrew Lunn @ 2026-02-24 17:54 UTC (permalink / raw)
  To: Sean Chang
  Cc: nicolas.ferre, claudiu.beznea, trond.myklebust, anna, netdev,
	linux-nfs, linux-kernel

On Wed, Feb 25, 2026 at 12:54:34AM +0800, Sean Chang wrote:
> When CONFIG_SUNRPC_DEBUG is disabled, the dprintk() macro expands to
> an empty do-while loop. This causes variables used solely within
> dprintk() calls to appear unused to the compiler, triggering
> -Wunused-variable warnings.
> 
> Fix this by adding __maybe_unused to the affected variables. This
> ensures the code builds cleanly across different configurations,
> including RISC-V, ARM, and ARM64 allmodconfig, as verified in the
> mailing list discussion.
> 
> Signed-off-by: Sean Chang <seanwascoding@gmail.com>
> ---
>  fs/nfs/flexfilelayout/flexfilelayout.c    | 2 +-
>  fs/nfs/flexfilelayout/flexfilelayoutdev.c | 3 ++-
>  fs/nfs/nfs4proc.c                         | 2 +-
>  3 files changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/fs/nfs/flexfilelayout/flexfilelayout.c b/fs/nfs/flexfilelayout/flexfilelayout.c
> index 9056f05a67dc..de9e8bad6af2 100644
> --- a/fs/nfs/flexfilelayout/flexfilelayout.c
> +++ b/fs/nfs/flexfilelayout/flexfilelayout.c
> @@ -1502,7 +1502,7 @@ static void ff_layout_io_track_ds_error(struct pnfs_layout_segment *lseg,
>  {
>  	struct nfs4_ff_layout_mirror *mirror;
>  	u32 status = *op_status;
> -	int err;
> +	int err __maybe_unused;

Sorry, but this is ugly. There must be a better way to fix this.

Maybe look at no_printk().

https://elixir.bootlin.com/linux/v6.19.3/source/drivers/video/fbdev/core/fbmon.c#L50

#ifdef DEBUG
#define DPRINTK(fmt, args...) printk(fmt,## args)
#else
#define DPRINTK(fmt, args...) no_printk(fmt, ##args)
#endif

    Andrew

---
pw-bot: cr


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v3 2/2] net: macb: use ethtool_sprintf to fill ethtool stats strings
  2026-02-24 16:54 ` [PATCH v3 2/2] net: macb: use ethtool_sprintf to fill ethtool stats strings Sean Chang
@ 2026-02-24 17:55   ` Andrew Lunn
  0 siblings, 0 replies; 6+ messages in thread
From: Andrew Lunn @ 2026-02-24 17:55 UTC (permalink / raw)
  To: Sean Chang
  Cc: nicolas.ferre, claudiu.beznea, trond.myklebust, anna, netdev,
	linux-nfs, linux-kernel

On Wed, Feb 25, 2026 at 12:54:35AM +0800, Sean Chang wrote:
> The RISC-V toolchain triggers a stringop-truncation warning when using
> snprintf() with a fixed ETH_GSTRING_LEN (32 bytes) buffer.
> 
> Convert the driver to use the modern ethtool_sprintf() API from
> linux/ethtool.h. This removes the need for manual snprintf() and
> memcpy() calls, handles the 32-byte padding automatically, and
> simplifies the logic by removing manual pointer arithmetic.
> 
> Signed-off-by: Sean Chang <seanwascoding@gmail.com>

Reviewed-by: Andrew Lunn <andrew@lunn.ch>

    Andrew

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v3 1/2] nfs: fix unused variable warning when CONFIG_SUNRPC_DEBUG is disabled
  2026-02-24 17:54   ` Andrew Lunn
@ 2026-02-25 16:30     ` Sean Chang
  0 siblings, 0 replies; 6+ messages in thread
From: Sean Chang @ 2026-02-25 16:30 UTC (permalink / raw)
  To: Andrew Lunn
  Cc: nicolas.ferre, claudiu.beznea, trond.myklebust, anna, netdev,
	linux-nfs, linux-kernel

On Wed, Feb 25, 2026 at 1:54 AM Andrew Lunn <andrew@lunn.ch> wrote:
> >
> > diff --git a/fs/nfs/flexfilelayout/flexfilelayout.c b/fs/nfs/flexfilelayout/flexfilelayout.c
> > index 9056f05a67dc..de9e8bad6af2 100644
> > --- a/fs/nfs/flexfilelayout/flexfilelayout.c
> > +++ b/fs/nfs/flexfilelayout/flexfilelayout.c
> > @@ -1502,7 +1502,7 @@ static void ff_layout_io_track_ds_error(struct pnfs_layout_segment *lseg,
> >  {
> >       struct nfs4_ff_layout_mirror *mirror;
> >       u32 status = *op_status;
> > -     int err;
> > +     int err __maybe_unused;
>
> Sorry, but this is ugly. There must be a better way to fix this.
>
> Maybe look at no_printk().
>
> https://elixir.bootlin.com/linux/v6.19.3/source/drivers/video/fbdev/core/fbmon.c#L50
>
> #ifdef DEBUG
> #define DPRINTK(fmt, args...) printk(fmt,## args)
> #else
> #define DPRINTK(fmt, args...) no_printk(fmt, ##args)
> #endif
>

You are absolutely right, adding __maybe_unused to every
variable is indeed ugly and repetitive. I investigated the suggestion
of using no_printk(). It provides the same dummy-function
behavior while allowing the compiler to perform type checking
on the arguments. This effectively silences the -Wunused-variable
warnings without generating any machine code.

I propose modifying include/linux/sunrpc/debug.h to update the
stubs for dfprintk and dfprintk_rcu when CONFIG_SUNRPC_DEBUG
is disabled:
- # define dfprintk(fac, fmt, ...)      do {} while (0)
- # define dfprintk_rcu(fac, fmt, ...)  do {} while (0)
+ # define dfprintk(fac, fmt, ...)      no_printk(fmt, ##__VA_ARGS__)
+ # define dfprintk_rcu(fac, fmt, ...)  no_printk(fmt, ##__VA_ARGS__)

Best regards,
Sean

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-02-25 16:30 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-24 16:54 [PATCH v3 0/2] Fix warnings for RISC-V builds Sean Chang
2026-02-24 16:54 ` [PATCH v3 1/2] nfs: fix unused variable warning when CONFIG_SUNRPC_DEBUG is disabled Sean Chang
2026-02-24 17:54   ` Andrew Lunn
2026-02-25 16:30     ` Sean Chang
2026-02-24 16:54 ` [PATCH v3 2/2] net: macb: use ethtool_sprintf to fill ethtool stats strings Sean Chang
2026-02-24 17:55   ` Andrew Lunn

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox