[bug report] net: phy: add genphy_c45_ethtool_get/set_eee() support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Oleksij Rempel,

The patch 022c3f87f88e: "net: phy: add
genphy_c45_ethtool_get/set_eee() support" from Feb 11, 2023, leads to
the following Smatch static checker warning:

	drivers/net/phy/phy-c45.c:716 genphy_c45_write_eee_adv()
	error: uninitialized symbol 'changed'.

drivers/net/phy/phy-c45.c
    673 int genphy_c45_write_eee_adv(struct phy_device *phydev, unsigned long *adv)
    674 {
    675         int val, changed;

changed = 0;  similar to a bug I reported last week but a different
function.

    676 
    677         if (linkmode_intersects(phydev->supported, PHY_EEE_CAP1_FEATURES)) {
    678                 val = linkmode_to_mii_eee_cap1_t(adv);
    679 
    680                 /* In eee_broken_modes are stored MDIO_AN_EEE_ADV specific raw
    681                  * register values.
    682                  */
    683                 val &= ~phydev->eee_broken_modes;
    684 
    685                 /* IEEE 802.3-2018 45.2.7.13 EEE advertisement 1
    686                  * (Register 7.60)
    687                  */
    688                 val = phy_modify_mmd_changed(phydev, MDIO_MMD_AN,
    689                                              MDIO_AN_EEE_ADV,
    690                                              MDIO_EEE_100TX | MDIO_EEE_1000T |
    691                                              MDIO_EEE_10GT | MDIO_EEE_1000KX |
    692                                              MDIO_EEE_10GKX4 | MDIO_EEE_10GKR,
    693                                              val);
    694                 if (val < 0)
    695                         return val;
    696                 if (val > 0)
    697                         changed = 1;
    698         }
    699 
    700         if (linkmode_test_bit(ETHTOOL_LINK_MODE_10baseT1L_Full_BIT,
    701                               phydev->supported_eee)) {
    702                 val = linkmode_adv_to_mii_10base_t1_t(adv);
    703                 /* IEEE 802.3cg-2019 45.2.7.25 10BASE-T1 AN control register
    704                  * (Register 7.526)
    705                  */
    706                 val = phy_modify_mmd_changed(phydev, MDIO_MMD_AN,
    707                                              MDIO_AN_10BT1_AN_CTRL,
    708                                              MDIO_AN_10BT1_AN_CTRL_ADV_EEE_T1L,
    709                                              val);
    710                 if (val < 0)
    711                         return val;
    712                 if (val > 0)
    713                         changed = 1;
    714         }
    715 
--> 716         return changed;
    717 }

regards,
dan carpenter



[Index of Archives]     [Kernel Development]     [Kernel Announce]     [Kernel Newbies]     [Linux Networking Development]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Device Mapper]

  Powered by Linux