* [PATCH] nvmem: layouts: u-boot-env: handle quotes in MAC post process
@ 2026-08-20 21:17 Michael C. Pratt
0 siblings, 0 replies; only message in thread
From: Michael C. Pratt @ 2026-08-20 21:17 UTC (permalink / raw)
To: linux-kernel
Cc: Michael C. Pratt, Rafał Miłecki, Christian Marangi,
Srinivas Kandagatla
Although it is not common, some board models from some vendors have
a MAC address stored in u-boot environment as a quoted form, e.g.
ethaddr="AA:BB:CC:DD:EE:FF"
This is acceptable formatting for a u-boot environment variable, however,
it makes parsing MACs in post processing more variable and currently fails.
Add a second attempt when initial processing of the MAC address fails,
by allowing a longer length and try parsing again if it seems to be quoted.
The mac_pton() function has strict behavior on the length and location
of delimiters for each octet and that each digit is hexadecimal,
so attempting different offsets of the same string is not problematic.
Signed-off-by: Michael C. Pratt <mcpratt@pm.me>
---
drivers/nvmem/layouts/u-boot-env.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/nvmem/layouts/u-boot-env.c b/drivers/nvmem/layouts/u-boot-env.c
index f27f387bb52a..ff71c3c25d42 100644
--- a/drivers/nvmem/layouts/u-boot-env.c
+++ b/drivers/nvmem/layouts/u-boot-env.c
@@ -38,11 +38,15 @@ static int u_boot_env_read_post_process_ethaddr(void *context, const char *id, i
{
u8 mac[ETH_ALEN];
+ /* Handle quotation which increases length by 2 bytes if present. */
if (bytes != MAC_ADDR_STR_LEN)
- return -EINVAL;
+ if (bytes != MAC_ADDR_STR_LEN + 2 && !(*(char *)buf == '"' || *(char *)buf == '\''))
+ return -EINVAL;
+ /* Handle quotation which offsets data by 1 byte if present. */
if (!mac_pton(buf, mac))
- return -EINVAL;
+ if (!mac_pton(buf + 1, mac))
+ return -EINVAL;
if (index)
eth_addr_add(mac, index);
--
2.30.2
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-08-20 21:18 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-20 21:17 [PATCH] nvmem: layouts: u-boot-env: handle quotes in MAC post process Michael C. Pratt
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.