Thread (5 messages) 5 messages, 4 authors, 2017-12-28

[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

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help