lan78xx: Allow EEPROM write for less than MAX_EEPROM_SIZE
authorNisar Sayed <Nisar.Sayed@microchip.com>
Wed, 20 Sep 2017 21:06:37 +0000 (02:36 +0530)
committerDavid S. Miller <davem@davemloft.net>
Thu, 21 Sep 2017 22:22:53 +0000 (15:22 -0700)
Allow EEPROM write for less than MAX_EEPROM_SIZE

Fixes: 55d7de9de6c3 ("Microchip's LAN7800 family USB 2/3 to 10/100/1000 Ethernet device driver")
Signed-off-by: Nisar Sayed <Nisar.Sayed@microchip.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/usb/lan78xx.c

index fcf85ae3743582cab2fef3db0958297e9b72288a..f8c63eec83535bb4cbcd51f2e1bb2d8f7835b74b 100644 (file)
@@ -1290,11 +1290,10 @@ static int lan78xx_ethtool_set_eeprom(struct net_device *netdev,
        if (ret)
                return ret;
 
-       /* Allow entire eeprom update only */
-       if ((ee->magic == LAN78XX_EEPROM_MAGIC) &&
-           (ee->offset == 0) &&
-           (ee->len == 512) &&
-           (data[0] == EEPROM_INDICATOR))
+       /* Invalid EEPROM_INDICATOR at offset zero will result in a failure
+        * to load data from EEPROM
+        */
+       if (ee->magic == LAN78XX_EEPROM_MAGIC)
                ret = lan78xx_write_raw_eeprom(dev, ee->offset, ee->len, data);
        else if ((ee->magic == LAN78XX_OTP_MAGIC) &&
                 (ee->offset == 0) &&