From: Yang Xiwen <[email protected]> Check the uclass id in clk_get_parent() before casting dev->priv to struct clk *. This sanity check can be also found in some other places and should be enforced.
Signed-off-by: Yang Xiwen <[email protected]> --- drivers/clk/clk-uclass.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c index 2167cd5ad0fe..bd18de972bb9 100644 --- a/drivers/clk/clk-uclass.c +++ b/drivers/clk/clk-uclass.c @@ -502,6 +502,10 @@ struct clk *clk_get_parent(struct clk *clk) pdev = dev_get_parent(clk->dev); if (!pdev) return ERR_PTR(-ENODEV); + + if (device_get_uclass_id(pdev) != UCLASS_CLK) + return ERR_PTR(-ENODEV); + pclk = dev_get_clk_ptr(pdev); if (!pclk) return ERR_PTR(-ENODEV); -- 2.43.0

