Hello Paolo, On 10/11/22 18:36, Paolo Abeni wrote: > hello, > > On Wed, 2022-11-09 at 09:52 +0530, Siddharth Vadapalli wrote: > [...] > >> +static void am65_cpsw_disable_serdes_phy(struct am65_cpsw_common *common) >> +{ >> + struct device_node *node, *port_np; >> + struct device *dev = common->dev; >> + const char *name = "serdes-phy"; >> + struct phy *phy; >> + >> + node = of_get_child_by_name(dev->of_node, "ethernet-ports"); >> + >> + for_each_child_of_node(node, port_np) { >> + phy = devm_of_phy_get(dev, port_np, name); > > The above will try to allocate some memory and can fail. Even if the > the following code will handle a NULL ptr, the phy will not be > disabled. > > I think it's better if you cache the serdes phy ptr in > am65_cpsw_init_serdes_phy() and you use such reference here, without > resorting to devm_of_phy_get(). Thank you for reviewing the patch. I plan on creating a new "struct phy*" member named "serdes_phy" in the struct "am65_cpsw_slave_data" defined in the file "am65-cpsw-nuss.h", and store the SerDes phy in this member, during the execution of the am65_cpsw_init_serdes_phy() function. Please let me know if I can proceed with this implementation. Regards, Siddharth.