* [PATCH net v2] net: usb: lan78xx: reject invalid EEPROM write requests
@ 2026-10-10 21:32 Stefano Munari
2026-10-10 21:40 ` netdev-bot+sinfo
2026-10-11 8:49 ` Daniel Machon
0 siblings, 2 replies; 3+ messages in thread
From: Stefano Munari @ 2026-10-10 21:32 UTC (permalink / raw)
To: netdev
Cc: Thangaraj Samynathan, UNGLinuxDriver, Andrew Lunn,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Nisar Sayed, linux-usb, linux-kernel
The runtime PM handling removed the -EINVAL return for invalid
EEPROM/OTP write requests. These requests now return zero from a
successful usb_autopm_get_interface() call, even though no data is
written.
Set ret to -EINVAL for invalid requests while preserving the runtime
PM reference release.
Fixes: 8a7ffeb795f8 ("lan78xx: Fix for eeprom read/write when device auto suspend")
Signed-off-by: Stefano Munari <stefanomunari.sm@gmail.com>
Reviewed-by: Nicolai Buchwitz <nb@tipi-net.de>
Tested-by: Nicolai Buchwitz <nb@tipi-net.de> # Raspberry Pi 3B+ (LAN7515)
---
Changes in v2:
- Add braces to all branches of the if/else chain as suggested by Andrew.
- Add Nicolai's Reviewed-by and Tested-by tags.
v1: https://lore.kernel.org/r/20261009005702.164936-1-stefanomunari.sm@gmail.com
Tested on a Raspberry Pi 3 Model B+ with the onboard Ethernet
controller, using raspberrypi/linux commit bba53a117a4a on the
rpi-6.6.y branch as the baseline.
ethtool -E eth0 magic 0 offset 0 length 1 value 0
The command succeeds without the patch and reports "Invalid argument"
with the patch applied.
---
drivers/net/usb/lan78xx.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
index 5655941f1478..2fed938fc7f4 100644
--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
@@ -1712,13 +1712,16 @@ static int lan78xx_ethtool_set_eeprom(struct net_device *netdev,
/* Invalid EEPROM_INDICATOR at offset zero will result in a failure
* to load data from EEPROM
*/
- if (ee->magic == LAN78XX_EEPROM_MAGIC)
+ if (ee->magic == LAN78XX_EEPROM_MAGIC) {
ret = lan78xx_write_raw_eeprom(dev, ee->offset, ee->len, data);
- else if ((ee->magic == LAN78XX_OTP_MAGIC) &&
+ } else if ((ee->magic == LAN78XX_OTP_MAGIC) &&
(ee->offset == 0) &&
(ee->len == 512) &&
- (data[0] == OTP_INDICATOR_1))
+ (data[0] == OTP_INDICATOR_1)) {
ret = lan78xx_write_raw_otp(dev, ee->offset, ee->len, data);
+ } else {
+ ret = -EINVAL;
+ }
usb_autopm_put_interface(dev->intf);
--
2.55.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH net v2] net: usb: lan78xx: reject invalid EEPROM write requests
2026-10-10 21:32 [PATCH net v2] net: usb: lan78xx: reject invalid EEPROM write requests Stefano Munari
@ 2026-10-10 21:40 ` netdev-bot+sinfo
2026-10-11 8:49 ` Daniel Machon
1 sibling, 0 replies; 3+ messages in thread
From: netdev-bot+sinfo @ 2026-10-10 21:40 UTC (permalink / raw)
To: Stefano Munari
Cc: netdev, Thangaraj Samynathan, UNGLinuxDriver, Andrew Lunn,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Nisar Sayed, linux-usb, linux-kernel
Hi!
This is an automated message. This series looks like a fix, but its
commit messages seem to be missing some information:
- How the issue was discovered, e.g. hit in production, hit during
development, syzbot report, manual code inspection, LLM or static
analysis tool scan.
Please do not repost the series just to address the above. Instead,
reply to this email with the missing information, so that reviewers
can take it into account. If the series needs another revision for
other reasons, please include the information in the commit messages
then.
The evaluation is done by an LLM so it may be wrong, if you think
that is the case please reply and explain.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH net v2] net: usb: lan78xx: reject invalid EEPROM write requests
2026-10-10 21:32 [PATCH net v2] net: usb: lan78xx: reject invalid EEPROM write requests Stefano Munari
2026-10-10 21:40 ` netdev-bot+sinfo
@ 2026-10-11 8:49 ` Daniel Machon
1 sibling, 0 replies; 3+ messages in thread
From: Daniel Machon @ 2026-10-11 8:49 UTC (permalink / raw)
To: Stefano Munari
Cc: netdev, Thangaraj Samynathan, UNGLinuxDriver, Andrew Lunn,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Nisar Sayed, linux-usb, linux-kernel
> The runtime PM handling removed the -EINVAL return for invalid
> EEPROM/OTP write requests. These requests now return zero from a
> successful usb_autopm_get_interface() call, even though no data is
> written.
>
> Set ret to -EINVAL for invalid requests while preserving the runtime
> PM reference release.
Reviewed-by: Daniel Machon <daniel.machon@microchip.com>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-10-11 8:49 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-10 21:32 [PATCH net v2] net: usb: lan78xx: reject invalid EEPROM write requests Stefano Munari
2026-10-10 21:40 ` netdev-bot+sinfo
2026-10-11 8:49 ` Daniel Machon
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox