bna: fill the magic in bnad_get_eeprom() instead of validating
authorIvan Vecera <ivecera@redhat.com>
Mon, 28 Jul 2014 13:03:52 +0000 (15:03 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 30 Jul 2014 20:56:40 +0000 (13:56 -0700)
A driver should fill magic field of ethtool_eeprom struct in .get_eeprom
and validate it in .set_eeprom. The bna incorrectly validates it in both
and this makes its .get_eeprom interface unusable.

Signed-off-by: Ivan Vecera <ivecera@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/brocade/bna/bnad_ethtool.c

index 882cad71ad620004aff54832e6dd9758ec025a2c..d26adac6ab99e8eb91e90ddded98536493b04597 100644 (file)
@@ -997,10 +997,8 @@ bnad_get_eeprom(struct net_device *netdev, struct ethtool_eeprom *eeprom,
        unsigned long flags = 0;
        int ret = 0;
 
-       /* Check if the flash read request is valid */
-       if (eeprom->magic != (bnad->pcidev->vendor |
-                            (bnad->pcidev->device << 16)))
-               return -EFAULT;
+       /* Fill the magic value */
+       eeprom->magic = bnad->pcidev->vendor | (bnad->pcidev->device << 16);
 
        /* Query the flash partition based on the offset */
        flash_part = bnad_get_flash_partition_by_offset(bnad,