From: Jakub Kicinski <kuba@kernel.org>
To: Colin Foster <colin.foster@in-advantage.com>
Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
Steve Glendinning <steve.glendinning@shawell.net>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Paolo Abeni <pabeni@redhat.com>
Subject: Re: [PATCH v1] smsc911x: add second read of EEPROM mac when possible corruption seen
Date: Mon, 1 Sep 2025 13:57:12 -0700 [thread overview]
Message-ID: <20250901135712.272f72a9@kernel.org> (raw)
In-Reply-To: <20250828214452.11683-1-colin.foster@in-advantage.com>
On Thu, 28 Aug 2025 16:44:52 -0500 Colin Foster wrote:
> When the EEPROM MAC is read by way of ADDRH, it can return all 0s the
> first time. Subsequent reads succeed.
>
> Re-read the ADDRH when this behaviour is observed, in an attempt to
> correctly apply the EEPROM MAC address.
Please name the device, and FW version if applicable, on which you
observe the issue.
> Signed-off-by: Colin Foster <colin.foster@in-advantage.com>
> ---
> drivers/net/ethernet/smsc/smsc911x.c | 16 ++++++++++++++--
> 1 file changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/ethernet/smsc/smsc911x.c b/drivers/net/ethernet/smsc/smsc911x.c
> index a2e511912e6a9..63ed221edc00a 100644
> --- a/drivers/net/ethernet/smsc/smsc911x.c
> +++ b/drivers/net/ethernet/smsc/smsc911x.c
> @@ -2162,8 +2162,20 @@ static const struct net_device_ops smsc911x_netdev_ops = {
> static void smsc911x_read_mac_address(struct net_device *dev)
> {
> struct smsc911x_data *pdata = netdev_priv(dev);
> - u32 mac_high16 = smsc911x_mac_read(pdata, ADDRH);
> - u32 mac_low32 = smsc911x_mac_read(pdata, ADDRL);
> + u32 mac_high16, mac_low32;
> +
> + mac_high16 = smsc911x_mac_read(pdata, ADDRH);
> + mac_low32 = smsc911x_mac_read(pdata, ADDRL);
> +
> + /*
nit: netdev multi-line comment style doesn't place /* on a separate
line:
> + * The first mac_read always returns 0. Re-read it to get the
> + * full MAC
Always? Strange, why did nobody notice until now?
> + */
> + if (mac_high16 == 0) {
> + SMSC_TRACE(pdata, probe, "Re-read MAC ADDRH\n");
> + mac_high16 = smsc911x_mac_read(pdata, ADDRH);
> + }
> u8 addr[ETH_ALEN];
Please don't add code in the middle of variable declarations
--
pw-bot: cr
next prev parent reply other threads:[~2025-09-01 20:57 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-28 21:44 [PATCH v1] smsc911x: add second read of EEPROM mac when possible corruption seen Colin Foster
2025-09-01 20:57 ` Jakub Kicinski [this message]
2025-09-02 12:31 ` Colin Foster
2025-09-02 19:05 ` 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=20250901135712.272f72a9@kernel.org \
--to=kuba@kernel.org \
--cc=colin.foster@in-advantage.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=steve.glendinning@shawell.net \
/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.