]> git.baikalelectronics.ru Git - kernel.git/commitdiff
e100: handle eeprom as little endian
authorJesse Brandeburg <jesse.brandeburg@intel.com>
Fri, 26 Mar 2021 00:38:24 +0000 (17:38 -0700)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Wed, 26 May 2021 16:11:40 +0000 (09:11 -0700)
Sparse tool was warning on some implicit conversions from
little endian data read from the EEPROM on the e100 cards.

Fix these by being explicit about the conversions using
le16_to_cpu().

Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/e100.c

index f8d78af76d7deff4fd158b0569d2ebd053c3c07c..1b0958bd24f6ce1a6424fca7fe824a59d00b3677 100644 (file)
@@ -1395,7 +1395,7 @@ static int e100_phy_check_without_mii(struct nic *nic)
        u8 phy_type;
        int without_mii;
 
-       phy_type = (nic->eeprom[eeprom_phy_iface] >> 8) & 0x0f;
+       phy_type = (le16_to_cpu(nic->eeprom[eeprom_phy_iface]) >> 8) & 0x0f;
 
        switch (phy_type) {
        case NoSuchPhy: /* Non-MII PHY; UNTESTED! */
@@ -1515,7 +1515,7 @@ static int e100_phy_init(struct nic *nic)
                mdio_write(netdev, nic->mii.phy_id, MII_BMCR, bmcr);
        } else if ((nic->mac >= mac_82550_D102) || ((nic->flags & ich) &&
           (mdio_read(netdev, nic->mii.phy_id, MII_TPISTATUS) & 0x8000) &&
-               (nic->eeprom[eeprom_cnfg_mdix] & eeprom_mdix_enabled))) {
+          (le16_to_cpu(nic->eeprom[eeprom_cnfg_mdix]) & eeprom_mdix_enabled))) {
                /* enable/disable MDI/MDI-X auto-switching. */
                mdio_write(netdev, nic->mii.phy_id, MII_NCONFIG,
                                nic->mii.force_media ? 0 : NCONFIG_AUTO_SWITCH);
@@ -2269,9 +2269,9 @@ static int e100_asf(struct nic *nic)
 {
        /* ASF can be enabled from eeprom */
        return (nic->pdev->device >= 0x1050) && (nic->pdev->device <= 0x1057) &&
-          (nic->eeprom[eeprom_config_asf] & eeprom_asf) &&
-          !(nic->eeprom[eeprom_config_asf] & eeprom_gcl) &&
-          ((nic->eeprom[eeprom_smbus_addr] & 0xFF) != 0xFE);
+          (le16_to_cpu(nic->eeprom[eeprom_config_asf]) & eeprom_asf) &&
+          !(le16_to_cpu(nic->eeprom[eeprom_config_asf]) & eeprom_gcl) &&
+          ((le16_to_cpu(nic->eeprom[eeprom_smbus_addr]) & 0xFF) != 0xFE);
 }
 
 static int e100_up(struct nic *nic)
@@ -2926,7 +2926,7 @@ static int e100_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 
        /* Wol magic packet can be enabled from eeprom */
        if ((nic->mac >= mac_82558_D101_A4) &&
-          (nic->eeprom[eeprom_id] & eeprom_id_wol)) {
+          (le16_to_cpu(nic->eeprom[eeprom_id]) & eeprom_id_wol)) {
                nic->flags |= wol_magic;
                device_set_wakeup_enable(&pdev->dev, true);
        }