On Sat 2018-06-09 10:39:12, Javier Martinez Canillas wrote: > The struct clk_init_data defined in isp_xclk_init() is a variable in the > stack but it's not explicitly zero-initialized. Because of that, in some > cases the data structure contains values that confuses the clk framework. > > For example if the flags member has the CLK_IS_CRITICAL bit set, the clk > framework will wrongly prepare the clock on registration. This leads to > the isp_xclk_prepare() callback to be called which in turn calls to the > omap3isp_get() function that increments the isp device reference counter. > > Since this omap3isp_get() call is unexpected, this leads to an unbalanced > omap3isp_get() call that prevents the requested IRQ to be later enabled, > due the refcount not being 0 when the correct omap3isp_get() call happens. > > Fixes: 9b28ee3c9122 ("[media] omap3isp: Use the common clock framework") > Signed-off-by: Javier Martinez Canillas <javierm@xxxxxxxxxx> Tested-by: Pavel Machek <pavel@xxxxxx> -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
Attachment:
signature.asc
Description: Digital signature