All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jakub Kicinski <kuba@kernel.org>
To: Ivan Delalande <colona@arista.com>
Cc: Michael Chan <michael.chan@broadcom.com>,
	Pavan Chebbi <pavan.chebbi@broadcom.com>,
	netdev@vger.kernel.org, Paul SAGE <paul.sage@42.fr>,
	Vincent MORVAN <vinc@42.fr>,
	Atharva Tiwari <atharvatiwarilinuxdev@gmail.com>
Subject: Re: [PATCH net] tg3: check NVRAM and control register if SRAM has the placeholder MAC address
Date: Wed, 9 Sep 2026 19:17:51 -0700	[thread overview]
Message-ID: <20260909191751.651aa5c4@kernel.org> (raw)
In-Reply-To: <20260903233255.GA4109366@visor>

On Thu, 3 Sep 2026 16:32:55 -0700 Ivan Delalande wrote:
> Some of the tg3 NICs we use (BCM57762) reset the SRAM MAC address to the
> placeholder address on link flaps, tg3_chip_reset, etc. We've typically
> fixed it from userspace, but since e4c00ba7274b ("tg3: replace
> placeholder MAC address with device property") was merged, tg3 just
> fails probe as we don't have a way to get it through the generic
> device_get_mac_address infrastructure on our systems.
> 
> Since that commit effectively made the placeholder address invalid,
> include this check in the earlier `addr_ok` expression, so we proceed
> with the NVRAM and control register fallback to find a valid MAC.

If there are so many cases with known-broken MAC addresses with tg3
shouldnt we do something like:

--- a/drivers/net/ethernet/broadcom/tg3.c
+++ b/drivers/net/ethernet/broadcom/tg3.c
@@ -17914,12 +17914,13 @@ static int tg3_init_one(struct pci_dev *pdev,
        }
 
        err = tg3_get_device_address(tp, addr);
-       if (err) {
-               dev_err(&pdev->dev,
-                       "Could not obtain valid ethernet address, aborting\n");
-               goto err_out_apeunmap;
+       if (!err) {
+               eth_hw_addr_set(dev, addr);
+       } else {
+               dev_warn(&pdev->dev,
+                        "Could not obtain valid ethernet address, using a random address\n");
+               eth_hw_addr_random(dev);
        }
-       eth_hw_addr_set(dev, addr);
 
        intmbx = MAILBOX_INTERRUPT_0 + TG3_64BIT_REG_LOW;
        rcvmbx = MAILBOX_RCVRET_CON_IDX_0 + TG3_64BIT_REG_LOW;

?

  parent reply	other threads:[~2026-09-10  2:17 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-03 23:32 [PATCH net] tg3: check NVRAM and control register if SRAM has the placeholder MAC address Ivan Delalande
2026-09-09  2:33 ` netdev-bot+sashiko
2026-09-10  2:17 ` Jakub Kicinski [this message]
2026-09-10  5:31   ` Ivan Delalande
2026-09-10  6:02     ` Pavan Chebbi

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=20260909191751.651aa5c4@kernel.org \
    --to=kuba@kernel.org \
    --cc=atharvatiwarilinuxdev@gmail.com \
    --cc=colona@arista.com \
    --cc=michael.chan@broadcom.com \
    --cc=netdev@vger.kernel.org \
    --cc=paul.sage@42.fr \
    --cc=pavan.chebbi@broadcom.com \
    --cc=vinc@42.fr \
    /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.