[PATCH net 2/3] lan78xx: Allow EEPROM write for less than MAX_EEPROM_SIZE

Subsystems: networking drivers, the rest, usb lan78xx ethernet driver, usb networking drivers

STALE3285d

2 messages, 2 authors, 2017-09-07 · open the first message on its own page

[PATCH net 2/3] lan78xx: Allow EEPROM write for less than MAX_EEPROM_SIZE

From: <hidden>
Date: 2017-09-07 07:11:43

From: Nisar Sayed <redacted>

Allow EEPROM write for less than MAX_EEPROM_SIZE

Signed-off-by: Nisar Sayed <redacted>
---
 drivers/net/usb/lan78xx.c | 4 ++++
 1 file changed, 4 insertions(+)
diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
index baf91c7..94ef943 100644
--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
@@ -1299,6 +1299,10 @@ static int lan78xx_ethtool_set_eeprom(struct net_device *netdev,
 		 (ee->len == 512) &&
 		 (data[0] == OTP_INDICATOR_1))
 		ret = lan78xx_write_raw_otp(dev, ee->offset, ee->len, data);
+	else if ((ee->magic == LAN78XX_EEPROM_MAGIC) &&
+		 (ee->offset >= 0 && ee->offset < MAX_EEPROM_SIZE) &&
+		 (ee->len > 0 && (ee->offset + ee->len) <= MAX_EEPROM_SIZE))
+		ret = lan78xx_write_raw_eeprom(dev, ee->offset, ee->len, data);
 
 	usb_autopm_put_interface(dev->intf);
 
-- 
1.9.1

Re: [PATCH net 2/3] lan78xx: Allow EEPROM write for less than MAX_EEPROM_SIZE

From: Andrew Lunn <andrew@lunn.ch>
Date: 2017-09-07 14:10:51

On Thu, Sep 07, 2017 at 07:11:26AM +0000, Nisar.Sayed@microchip.com wrote:
quoted hunk
From: Nisar Sayed <redacted>

Allow EEPROM write for less than MAX_EEPROM_SIZE

Signed-off-by: Nisar Sayed <redacted>
---
 drivers/net/usb/lan78xx.c | 4 ++++
 1 file changed, 4 insertions(+)
diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
index baf91c7..94ef943 100644
--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
@@ -1299,6 +1299,10 @@ static int lan78xx_ethtool_set_eeprom(struct net_device *netdev,
static int lan78xx_ethtool_set_eeprom(struct net_device *netdev,
                                      struct ethtool_eeprom *ee, u8 *data)
{
        struct lan78xx_net *dev = netdev_priv(netdev);


        /* Allow entire eeprom update only */
        if ((ee->magic == LAN78XX_EEPROM_MAGIC) &&
            (ee->offset == 0) &&
            (ee->len == 512) &&
            (data[0] == EEPROM_INDICATOR))
                return lan78xx_write_raw_eeprom(dev, ee->offset, ee->len, data);
       else if ((ee->magic == LAN78XX_OTP_MAGIC) &&
 		 (ee->len == 512) &&
 		 (data[0] == OTP_INDICATOR_1))
 		ret = lan78xx_write_raw_otp(dev, ee->offset, ee->len, data);
+	else if ((ee->magic == LAN78XX_EEPROM_MAGIC) &&
+		 (ee->offset >= 0 && ee->offset < MAX_EEPROM_SIZE) &&
+		 (ee->len > 0 && (ee->offset + ee->len) <= MAX_EEPROM_SIZE))
+		ret = lan78xx_write_raw_eeprom(dev, ee->offset, ee->len, data);
 
 	usb_autopm_put_interface(dev->intf);
Hi Nisar

You should explain why this change cannot be folded into the first if
statement.

	Andrew
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help