Message ID | 20210720184710.17726-1-khilman@baylibre.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ARM: omap2+: hwmod: fix potential NULL pointer access | expand |
* Kevin Hilman <khilman@baylibre.com> [210720 21:47]: > From: Tero Kristo <t-kristo@ti.com> > > omap_hwmod_get_pwrdm() may access a NULL clk_hw pointer in some failure > cases. Add a check for the case and bail out gracely if this happens. Applying into fixes thanks. Tony
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c index 65934b2924fb..12b26e04686f 100644 --- a/arch/arm/mach-omap2/omap_hwmod.c +++ b/arch/arm/mach-omap2/omap_hwmod.c @@ -3776,6 +3776,7 @@ struct powerdomain *omap_hwmod_get_pwrdm(struct omap_hwmod *oh) struct omap_hwmod_ocp_if *oi; struct clockdomain *clkdm; struct clk_hw_omap *clk; + struct clk_hw *hw; if (!oh) return NULL; @@ -3792,7 +3793,14 @@ struct powerdomain *omap_hwmod_get_pwrdm(struct omap_hwmod *oh) c = oi->_clk; } - clk = to_clk_hw_omap(__clk_get_hw(c)); + hw = __clk_get_hw(c); + if (!hw) + return NULL; + + clk = to_clk_hw_omap(hw); + if (!clk) + return NULL; + clkdm = clk->clkdm; if (!clkdm) return NULL;