All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jakub Kicinski <kuba@kernel.org>
To: mmyangfl@gmail.com
Cc: Jakub Kicinski <kuba@kernel.org>,
	olteanv@gmail.com, davem@davemloft.net, edumazet@google.com,
	linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
	pabeni@redhat.com, andrew@lunn.ch
Subject: Re: [net-next,2/3] net: dsa: yt921x: Return early for failed MIB read
Date: Wed,  4 Feb 2026 21:08:13 -0800	[thread overview]
Message-ID: <20260205050813.2421675-1-kuba@kernel.org> (raw)
In-Reply-To: <20260203171305.95085-3-mmyangfl@gmail.com>

This is an AI-generated review of your patch. The human sending this
email has considered the AI review valid, or at least plausible.

For local reproduction steps see https://netdev-ai.bots.linux.dev/ai-local.html
---
net: dsa: yt921x: Return early for failed MIB read

This patch refactors error handling in yt921x_read_mib() by checking
for read failures earlier and returning immediately, before attempting
to compute statistics from potentially incomplete data.

> net: dsa: yt921x: Return early for failed MIB read
>
> This patch does not change anything effectively, but serves as a
> prerequisite for another patch.

The claim "This patch does not change anything effectively" is not
accurate. The patch changes the behavior when MIB register reads fail.

Before the patch: If yt921x_reg_read() fails partway through the loop,
the function would still compute pp->rx_frames and pp->tx_frames using
the partially-read MIB values before returning the error code. The frame
counts would contain a mix of old values (for registers read before the
error) and new values (for registers read successfully).

After the patch: If yt921x_reg_read() fails, the function returns
immediately without updating pp->rx_frames and pp->tx_frames, leaving
them at their previous values from the last successful read.

This affects how five callers behave when reads fail:
  - yt921x_dsa_get_pause_stats()
  - yt921x_dsa_get_eth_mac_stats()
  - yt921x_dsa_get_rmon_stats()
  - yt921x_dsa_get_eth_ctrl_stats()
  - yt921x_dsa_get_ethtool_stats()

These functions don't check the return value, so they will now report
stale data from the last successful read instead of partially-updated
data from a failed read.

Should the commit message be updated to accurately describe this
behavior change?

> diff --git a/drivers/net/dsa/yt921x.c b/drivers/net/dsa/yt921x.c
> --- a/drivers/net/dsa/yt921x.c
> +++ b/drivers/net/dsa/yt921x.c
> @@ -714,6 +714,11 @@ static int yt921x_read_mib(struct yt921x_priv *priv, int port)
>  		WRITE_ONCE(*valp, val);
>  	}
>
> +	if (res) {
> +		print_port_err(dev, port, res, "read stats for");
> +		return res;
> +	}
> +
>  	pp->rx_frames = mib->rx_64byte + mib->rx_65_127byte +
>  			mib->rx_128_255byte + mib->rx_256_511byte +
>  			mib->rx_512_1023byte + mib->rx_1024_1518byte +
> @@ -723,9 +728,7 @@
>  			mib->tx_512_1023byte + mib->tx_1024_1518byte +
>  			mib->tx_jumbo;
>
> -	if (res)
> -		print_port_err(dev, port, res, "read stats for");
> -	return res;
> +	return 0;
>  }
-- 
pw-bot: cr

  reply	other threads:[~2026-02-05  5:08 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-03 17:12 [PATCH net-next 0/3] net: dsa: yt921x: Use u64_stats_t for MIB stats David Yang
2026-02-03 17:12 ` [PATCH net-next 1/3] net: dsa: yt921x: Refactor port error message David Yang
2026-02-05  5:07   ` Jakub Kicinski
2026-02-03 17:12 ` [PATCH net-next 2/3] net: dsa: yt921x: Return early for failed MIB read David Yang
2026-02-05  5:08   ` Jakub Kicinski [this message]
2026-02-03 17:12 ` [PATCH net-next 3/3] net: dsa: yt921x: Use u64_stats_t for MIB stats David Yang
2026-02-05  5:12   ` Jakub Kicinski
2026-02-05  5:32     ` David Yang
2026-02-05 15:39       ` Jakub Kicinski

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=20260205050813.2421675-1-kuba@kernel.org \
    --to=kuba@kernel.org \
    --cc=andrew@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mmyangfl@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=olteanv@gmail.com \
    --cc=pabeni@redhat.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.