Re: [PATCH] media: omap3isp: zero-initialize the isp cam_xclk{a,b} initial data

From: Pavel Machek
Date: Thu Jun 14 2018 - 09:47:53 EST


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