clkdev: report over-sized strings when creating clkdev entries

Sam Protsenko semen.protsenko at linaro.org
Wed May 8 14:07:57 PDT 2024


On Tue, May 7, 2024 at 3:26 PM Stephen Boyd <sboyd at kernel.org> wrote:
>
> Quoting Arnd Bergmann (2024-05-07 00:44:15)
> > On Tue, May 7, 2024, at 09:20, Naresh Kamboju wrote:
> > > The WinLink E850-96 board boot failed with Linux next-20240506 but there
> > > is no kernel crash log on the serial [1].
> > >
> > > Anders bisection results pointing to this commit,
> > > # first bad commit:
> > >   [4d11c62ca8d77cb1f79054844b598e0f4e92dabe]
> > >   clkdev: report over-sized strings when creating clkdev entrie
> > >
> > > After reverting the above patch the boot test passed [2].
> > >
> > > Reported-by: Linux Kernel Functional Testing <lkft at linaro.org>
> > >
>
> There are two fixes on the list: [1] and [2]. Perhaps one of those
> resolves this?
>
> [1] https://lore.kernel.org/r/20240507065317.3214186-1-m.szyprowski@samsung.com
> [2] https://lore.kernel.org/r/20240507064434.3213933-1-m.szyprowski@samsung.com
>

Late to the party, but FWIW here is my two cents. E850-96 board
crashes on boot when running next-20240508. Enabling earlycon reveals
the details. Here is the relevant excerpt from the backtrace:

8<-------------------------------------------------------------------->8
    Unable to handle kernel NULL pointer dereference
    at virtual address 0000000000000000

    Call trace:
     vsnprintf+0x64/0x724
     ...
     _printk+0x60/0x84
     vclkdev_alloc+0x118/0x13c
     clkdev_hw_create+0x64/0x9c
     do_clk_register_clkdev+0x58/0x7c
     clk_hw_register_clkdev+0x30/0x54
     samsung_clk_register_fixed_rate+0xac/0x104
     samsung_cmu_register_clocks+0x78/0xb0
     samsung_cmu_register_one+0x48/0xa4
     exynos_arm64_register_cmu+0x3c/0x70
     exynos850_cmu_probe+0x2c/0x40
     ...
8<-------------------------------------------------------------------->8

'addr2line' points at the end of vclkdev_alloc():

    pr_err("%pV:%s: %s ID is greater than %zu\n",
           &fmt, con_id, failure, max_size);

Applying the forementioned patch [2] ("clkdev: fix potential NULL
pointer dereference") fixes the boot for me.

I can also observe a couple of warnings like these in the kernel log:

    samsung_clk_register_fixed_rate: failed to register clock lookup
for clk_rco_i3c_pmic
    samsung_clk_register_fixed_rate: failed to register clock lookup
for clk_rco_apm__alv
    ...

The patch [1] ("clk: samsung: Don't register clkdev lookup for the
fixed rate clocks") fixes those. I think both have to be applied ASAP.
In case of E850-96, I guess [1] is more critical.

Thanks!



More information about the linux-arm-kernel mailing list