Hi,

Johan Hovold <jo...@kernel.org> writes:
> Make sure to drop the references taken by of_parse_phandle() and
> bus_find_device() before returning from am335x_get_phy_control().
>
> Note that there is no guarantee that the devres-managed struct
> phy_control will be valid for the lifetime of the sibling phy device
> regardless of this change.
>
> Fixes: 3bb869c8b3f1 ("usb: phy: Add AM335x PHY driver")
> Signed-off-by: Johan Hovold <jo...@kernel.org>
> ---
>  drivers/usb/phy/phy-am335x-control.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/drivers/usb/phy/phy-am335x-control.c 
> b/drivers/usb/phy/phy-am335x-control.c
> index 42a1afe36a90..5f5f19813fde 100644
> --- a/drivers/usb/phy/phy-am335x-control.c
> +++ b/drivers/usb/phy/phy-am335x-control.c
> @@ -134,10 +134,12 @@ struct phy_control *am335x_get_phy_control(struct 
> device *dev)
>               return NULL;
>  
>       dev = bus_find_device(&platform_bus_type, NULL, node, match);
> +     of_node_put(node);
>       if (!dev)
>               return NULL;
>  
>       ctrl_usb = dev_get_drvdata(dev);
> +     put_device(dev);
>       if (!ctrl_usb)
>               return NULL;
>       return &ctrl_usb->phy_ctrl;

Bin, Roger, does this look okay to you?


-- 
balbi

Attachment: signature.asc
Description: PGP signature

Reply via email to