|
@@ -292,6 +292,7 @@ struct phy_device *of_phy_find_device(struct device_node *phy_np)
|
|
|
mdiodev = to_mdio_device(d);
|
|
|
if (mdiodev->flags & MDIO_DEVICE_FLAG_PHY)
|
|
|
return to_phy_device(d);
|
|
|
+ put_device(d);
|
|
|
}
|
|
|
|
|
|
return NULL;
|
|
@@ -456,8 +457,11 @@ int of_phy_register_fixed_link(struct device_node *np)
|
|
|
status.link = 1;
|
|
|
status.duplex = of_property_read_bool(fixed_link_node,
|
|
|
"full-duplex");
|
|
|
- if (of_property_read_u32(fixed_link_node, "speed", &status.speed))
|
|
|
+ if (of_property_read_u32(fixed_link_node, "speed",
|
|
|
+ &status.speed)) {
|
|
|
+ of_node_put(fixed_link_node);
|
|
|
return -EINVAL;
|
|
|
+ }
|
|
|
status.pause = of_property_read_bool(fixed_link_node, "pause");
|
|
|
status.asym_pause = of_property_read_bool(fixed_link_node,
|
|
|
"asym-pause");
|