[PATCH] clk: divider: fix incorrect usage of container_of
From: Stephen Boyd <hidden>
Date: 2017-12-21 18:38:41
Also in:
linux-arm-msm, linux-clk, linux-rtc, lkml
From: Stephen Boyd <hidden>
Date: 2017-12-21 18:38:41
Also in:
linux-arm-msm, linux-clk, linux-rtc, lkml
On 12/21, Jerome Brunet wrote:
divider_recalc_rate() is an helper function used by clock divider of different types, so the structure containing the 'hw' pointer is not always a 'struct clk_divider' At the following line:quoted
div = _get_div(table, val, flags, divider->width);in several cases, the value of 'divider->width' is garbage as the actual structure behind this memory is not a 'struct clk_divider' Fortunately, this width value is used by _get_val() only when CLK_DIVIDER_MAX_AT_ZERO flag is set. This has never been the case so far when the structure is not a 'struct clk_divider'. This is probably why we did not notice this bug before Fixes: afe76c8fd030 ("clk: allow a clk divider with max divisor when zero") Signed-off-by: Jerome Brunet <jbrunet@baylibre.com> --- Hi Stephen, Mike, In addition to clock, this patch also touch the rtc and drm directories. As it is changing the API of the helper function, I have this fix in a single commit to avoid breaking bisect. Please let me know if you prefer to do differently.
Looks good. Thanks for catching this before it became a real problem. It would be good to get acks from DRM and RTC maintainers. -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project