• Stephen Boyd's avatar
    clk: nxp: lpc18xx: Initialize clk_init_data::flags to 0 · a4447235
    Stephen Boyd authored
    Failure to initialize this flag to 0 by default can result in
    stack junk filling the clk_init_data structure and weird things
    happen. Joachim noticed that the critical clk feature started
    triggering for these clks causing boot failures, when it really
    shouldn't have happened:
    
    BUG: scheduling while atomic: swapper/0/0x00000002
    CPU: 0 PID: 0 Comm: swapper Not tainted
    4.6.0-rc6-next-20160505-00001-g5c8320450d1c #826
    Hardware name: NXP LPC18xx/43xx (Device Tree)
    [<2800be81>] (unwind_backtrace) from [<2800b22f>] (show_stack+0xb/0xc)
    [<2800b22f>] (show_stack) from [<2801ea21>] (__schedule_bug+0x2d/0x44)
    [<2801ea21>] (__schedule_bug) from [<281dc937>] (__schedule+0x3b/0x268)
    [<281dc937>] (__schedule) from [<281dcbbb>] (schedule+0x57/0x64)
    [<281dcbbb>] (schedule) from [<281de8ef>] (schedule_timeout+0xfb/0x120)
    [<281de8ef>] (schedule_timeout) from [<28030fcd>] (msleep+0xf/0x12)
    [<28030fcd>] (msleep) from [<28165a6d>] (clk_creg_32k_prepare+0x1f/0x24)
    [<28165a6d>] (clk_creg_32k_prepare) from [<281620d5>]
    (clk_core_prepare+0x1d/0x36)
    [<281620d5>] (clk_core_prepare) from [<2816340b>] (clk_register+0x22f/0x318)
    [<2816340b>] (clk_register) from [<282b06c9>] (lpc18xx_creg_clk_init+0x55/0x84)
    [<282b06c9>] (lpc18xx_creg_clk_init) from [<282b0149>] (of_clk_init+0xc1/0x12c)
    [<282b0149>] (of_clk_init) from [<282a665d>] (time_init+0x15/0x20)
    [<282a665d>] (time_init) from [<282a457d>] (start_kernel+0x169/0x274)
    [<282a457d>] (start_kernel) from [<28008025>] (0x28008025)
    bad: scheduling from the idle thread!
    CPU: 0 PID: 0 Comm: swapper Tainted: G W
    4.6.0-rc6-next-20160505-00001-g5c8320450d1c #826
    
    Fix this by initializing the flags member to 0.
    Acked-by: default avatarJoachim Eastwood <manabian@gmail.com>
    Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
    a4447235
clk-lpc18xx-creg.c 5.59 KB