Re: [PATCH] net: mdio: force deassert MDIO reset signal

From: Dan Carpenter
Date: Tue Jan 17 2023 - 17:04:30 EST


Hi Pierluigi,

https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Pierluigi-Passaro/net-mdio-force-deassert-MDIO-reset-signal/20230116-001044
patch link: https://lore.kernel.org/r/20230115161006.16431-1-pierluigi.p%40variscite.com
patch subject: [PATCH] net: mdio: force deassert MDIO reset signal
config: xtensa-randconfig-m041-20230116
compiler: xtensa-linux-gcc (GCC) 12.1.0

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Reported-by: Dan Carpenter <error27@xxxxxxxxx>

smatch warnings:
drivers/net/mdio/fwnode_mdio.c:144 fwnode_mdiobus_register_phy() warn: missing unwind goto?

vim +144 drivers/net/mdio/fwnode_mdio.c

bc1bee3b87ee48 Calvin Johnson 2021-06-11 114 int fwnode_mdiobus_register_phy(struct mii_bus *bus,
bc1bee3b87ee48 Calvin Johnson 2021-06-11 115 struct fwnode_handle *child, u32 addr)
bc1bee3b87ee48 Calvin Johnson 2021-06-11 116 {
bc1bee3b87ee48 Calvin Johnson 2021-06-11 117 struct mii_timestamper *mii_ts = NULL;
5e82147de1cbd7 Oleksij Rempel 2022-10-03 118 struct pse_control *psec = NULL;
bc1bee3b87ee48 Calvin Johnson 2021-06-11 119 struct phy_device *phy;
bc1bee3b87ee48 Calvin Johnson 2021-06-11 120 bool is_c45 = false;
bc1bee3b87ee48 Calvin Johnson 2021-06-11 121 u32 phy_id;
bc1bee3b87ee48 Calvin Johnson 2021-06-11 122 int rc;
3f08f04af6947d Pierluigi Passaro 2023-01-15 123 int reset_deassert_delay = 0;
3f08f04af6947d Pierluigi Passaro 2023-01-15 124 struct gpio_desc *reset_gpio;
bc1bee3b87ee48 Calvin Johnson 2021-06-11 125
5e82147de1cbd7 Oleksij Rempel 2022-10-03 126 psec = fwnode_find_pse_control(child);
5e82147de1cbd7 Oleksij Rempel 2022-10-03 127 if (IS_ERR(psec))
5e82147de1cbd7 Oleksij Rempel 2022-10-03 128 return PTR_ERR(psec);
5e82147de1cbd7 Oleksij Rempel 2022-10-03 129
bc1bee3b87ee48 Calvin Johnson 2021-06-11 130 mii_ts = fwnode_find_mii_timestamper(child);
5e82147de1cbd7 Oleksij Rempel 2022-10-03 131 if (IS_ERR(mii_ts)) {
5e82147de1cbd7 Oleksij Rempel 2022-10-03 132 rc = PTR_ERR(mii_ts);
5e82147de1cbd7 Oleksij Rempel 2022-10-03 133 goto clean_pse;
^^^^^^^^^^^^^^^

5e82147de1cbd7 Oleksij Rempel 2022-10-03 134 }
bc1bee3b87ee48 Calvin Johnson 2021-06-11 135
bc1bee3b87ee48 Calvin Johnson 2021-06-11 136 rc = fwnode_property_match_string(child, "compatible",
bc1bee3b87ee48 Calvin Johnson 2021-06-11 137 "ethernet-phy-ieee802.3-c45");
bc1bee3b87ee48 Calvin Johnson 2021-06-11 138 if (rc >= 0)
bc1bee3b87ee48 Calvin Johnson 2021-06-11 139 is_c45 = true;
bc1bee3b87ee48 Calvin Johnson 2021-06-11 140
3f08f04af6947d Pierluigi Passaro 2023-01-15 141 reset_gpio = fwnode_gpiod_get_index(child, "reset", 0, GPIOD_OUT_LOW, "PHY reset");
3f08f04af6947d Pierluigi Passaro 2023-01-15 142 if (reset_gpio == ERR_PTR(-EPROBE_DEFER)) {
3f08f04af6947d Pierluigi Passaro 2023-01-15 143 dev_dbg(&bus->dev, "reset signal for PHY@%u not ready\n", addr);
3f08f04af6947d Pierluigi Passaro 2023-01-15 @144 return -EPROBE_DEFER;
^^^^^^^^^^^^^^^^^^^^
Looks like there needs to be some clean up done before the return.
(Sometimes the kbuild-bot doesn't include the whole function in these
emails. I'm not sure what the rules are.).

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests