From: Ahmad Fatoum <a.fatoum@pengutronix.de>
To: barebox@lists.infradead.org
Cc: Ahmad Fatoum <a.fatoum@pengutronix.de>
Subject: [PATCH 3/4] net: export list of registered ethernet addresses
Date: Tue, 26 Nov 2024 16:17:43 +0100 [thread overview]
Message-ID: <20241126151744.3621717-4-a.fatoum@pengutronix.de> (raw)
In-Reply-To: <20241126151744.3621717-1-a.fatoum@pengutronix.de>
Network stack keeps an ethaddr_list of Ethernet addresses that were
registered by drivers and board code.
The list currently lacks ethernet devices for which a net_device already
existed. If a net_device is added later on, the list is consulted, but
the element is not removed.
This means ethaddr_list is "the list of registered Ethernet addresses
that were added before the relevant device has been probed". Make it more
useful by genericising it to be "the list of registered Ethernet addresses".
This introduces no functional change (only consumer is fixup code that
handles both cases already), but it allows future board code to consult
the list to check which Ethernet addresses were actually assigned.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
include/net.h | 9 +++++++++
net/eth.c | 11 ++---------
2 files changed, 11 insertions(+), 9 deletions(-)
diff --git a/include/net.h b/include/net.h
index 4d4996c720ef..d9b7953a3c33 100644
--- a/include/net.h
+++ b/include/net.h
@@ -625,4 +625,13 @@ void ifdown_all(void);
extern struct class eth_class;
+struct eth_ethaddr {
+ struct list_head list;
+ u8 ethaddr[ETH_ALEN];
+ int ethid;
+ struct device_node *node;
+};
+
+extern struct list_head ethaddr_list;
+
#endif /* __NET_H__ */
diff --git a/net/eth.c b/net/eth.c
index a1d6860be830..3714dde44026 100644
--- a/net/eth.c
+++ b/net/eth.c
@@ -23,14 +23,7 @@
DEFINE_DEV_CLASS(eth_class, "eth");
-struct eth_ethaddr {
- struct list_head list;
- u8 ethaddr[ETH_ALEN];
- int ethid;
- struct device_node *node;
-};
-
-static LIST_HEAD(ethaddr_list);
+LIST_HEAD(ethaddr_list);
int eth_set_promisc(struct eth_device *edev, bool enable)
{
@@ -102,7 +95,7 @@ void eth_register_ethaddr(int ethid, const char *ethaddr)
for_each_netdev(edev) {
if (edev->dev.id == ethid) {
register_preset_mac_address(edev, ethaddr);
- return;
+ break;
}
}
--
2.39.5
next prev parent reply other threads:[~2024-11-26 15:18 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-26 15:17 [PATCH 0/4] net: ethernet address helpers for board code Ahmad Fatoum
2024-11-26 15:17 ` [PATCH 1/4] net: add ethaddr sequence handling Ahmad Fatoum
2024-11-26 15:17 ` [PATCH 2/4] net: factor out eth_of_get_fixup_node Ahmad Fatoum
2024-11-26 15:17 ` Ahmad Fatoum [this message]
2024-11-26 15:17 ` [PATCH 4/4] net: implement ethaddr_string_cmp() Ahmad Fatoum
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=20241126151744.3621717-4-a.fatoum@pengutronix.de \
--to=a.fatoum@pengutronix.de \
--cc=barebox@lists.infradead.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox