v6.0-rc6 - arm64 / rock960 : kernel panic

Michael Nazzareno Trimarchi michael at amarulasolutions.com
Sat Sep 24 11:49:16 PDT 2022


Hi


On Sat, Sep 24, 2022 at 8:01 PM Michael Nazzareno Trimarchi
<michael at amarulasolutions.com> wrote:
>
> On Sat, Sep 24, 2022 at 7:58 PM Michael Nazzareno Trimarchi
> <michael at amarulasolutions.com> wrote:
> >
> > Hi Daniel
> >
> > On Sat, Sep 24, 2022 at 7:43 PM Daniel Lezcano
> > <daniel.lezcano at linaro.org> wrote:
> > >
> > > Hi,
> > >
> > > there is a kernel panic on a rock960 board:
> > >
> > > After git bisecting, I have:
> > >
> > > commit 14facbc1871ae15404666747b5319c08e04b875a
> > > Merge: f5c97da8037b 32346491ddf2
> > > Author: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
> > > Date:   Mon Jul 11 08:32:58 2022 +0200
> > >
> > >      Merge 5.19-rc6 into char-misc-next
> > >
> > >      We need the misc driver fixes in here as well.
> > >
> > >      Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
> > >
> > > Any clue?
> >
> > That code receive 3-4 commits for one fix
> >
> > diff --git a/sound/soc/rockchip/rockchip_i2s.c
> > b/sound/soc/rockchip/rockchip_i2s.c
> > index f5f3540a9e18..a32a45b09b03 100644
> > --- a/sound/soc/rockchip/rockchip_i2s.c
> > +++ b/sound/soc/rockchip/rockchip_i2s.c
> > @@ -803,7 +803,7 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
> >
> >         i2s->bclk_ratio = 64;
> >         i2s->pinctrl = devm_pinctrl_get(&pdev->dev);
> > -       if (!IS_ERR(i2s->pinctrl)) {
> > +       if (!IS_ERR_OR_NULL(i2s->pinctrl)) {
> >                 i2s->bclk_on = pinctrl_lookup_state(i2s->pinctrl, "bclk_on");
> >                 if (!IS_ERR_OR_NULL(i2s->bclk_on)) {
> >                         i2s->bclk_off =
> > pinctrl_lookup_state(i2s->pinctrl, "bclk_off");
>
> I don't sure if you can get null from there, but you have two
> lookup_state on that function
>

I navigated a bit the code and states->name of pinctrl->state should
be the offset five where you have the panic.

What is not clear is. If we iterate the map and we don't find the node

       ret = pinctrl_dt_to_map(p, pctldev);
        if (ret < 0) {
                kfree(p);
                return ERR_PTR(ret);
        }

        devname = dev_name(dev);

        mutex_lock(&pinctrl_maps_mutex);
        /* Iterate over the pin control maps to locate the right ones */
        for_each_maps(maps_node, i, map) {

Then add_setting is not called and name is not assigned

Michael

> Michael
> >
> > Michael
> >
> > >
> > >
> > > [    2.377386] Unable to handle kernel NULL pointer dereference at
> > > virtual address 0000000000000005
> > > [    2.377390] Mem abort info:
> > > [    2.377392]   ESR = 0x0000000096000004
> > > [    2.379529]   EC = 0x25: DABT (current EL), IL = 32 bits
> > > [    2.379994]   SET = 0, FnV = 0
> > > [    2.380263]   EA = 0, S1PTW = 0
> > > [    2.380538]   FSC = 0x04: level 0 translation fault
> > > [    2.380964] Data abort info:
> > > [    2.381217]   ISV = 0, ISS = 0x00000004
> > > [    2.381343] mmc2: SDHCI controller on fe330000.mmc [fe330000.mmc]
> > > using ADMA
> > > [    2.381558]   CM = 0, WnR = 0
> > > [    2.382426] [0000000000000005] user address but active_mm is swapper
> > > [    2.382981] Internal error: Oops: 96000004 [#1] PREEMPT SMP
> > > [    2.383468] Modules linked in:
> > > [    2.383740] CPU: 4 PID: 1 Comm: swapper/0 Not tainted 5.19.0-rc6+ #728
> > > [    2.384311] Hardware name: 96boards Rock960 (DT)
> > > [    2.384715] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS
> > > BTYPE=--)
> > > [    2.385323] pc : pinctrl_lookup_state+0x20/0xc0
> > > [    2.385729] lr : rockchip_i2s_probe+0x1a8/0x54c
> > > [    2.386130] sp : ffff80000804bb30
> > > [    2.386420] x29: ffff80000804bb30 x28: 0000000000000000 x27:
> > > ffff800009f204c8
> > > [    2.387048] x26: ffff800009fc1060 x25: ffff800009fc1078 x24:
> > > ffff000002691b68
> > > [    2.387673] x23: ffff800009967938 x22: ffffffffffffffed x21:
> > > ffff800009e1e0e8
> > > [    2.388299] x20: ffffffffffffffed x19: ffff000002597480 x18:
> > > ffffffffffffffff
> > > [    2.388924] x17: 000000040044ffff x16: 00400034b5503510 x15:
> > > ffff80008804b787
> > > [    2.389550] x14: 0000000000000000 x13: 6c7274636e697020 x12:
> > > 73326920646e6966
> > > [    2.390176] x11: 206f742064656c69 x10: 6166203a7332692e x9 :
> > > 656c696166203a73
> > > [    2.390801] x8 : 32692e3030303061 x7 : 205d363238363733 x6 :
> > > ffff000001657880
> > > [    2.391425] x5 : 0000000000000000 x4 : 0000000000000000 x3 :
> > > 0000000000000000
> > > [    2.392051] x2 : 0000000000000000 x1 : ffff800009e1e0e8 x0 :
> > > ffffffffffffffed
> > > [    2.392677] Call trace:
> > > [    2.392892]  pinctrl_lookup_state+0x20/0xc0
> > > [    2.393261]  rockchip_i2s_probe+0x1a8/0x54c
> > > [    2.393629]  platform_probe+0x68/0xe0
> > > [    2.393954]  really_probe.part.0+0x9c/0x2ac
> > > [    2.394321]  __driver_probe_device+0x98/0x144
> > > [    2.394703]  driver_probe_device+0xac/0x140
> > > [    2.395070]  __driver_attach+0xf8/0x1a0
> > > [    2.395407]  bus_for_each_dev+0x70/0xd0
> > > [    2.395746]  driver_attach+0x24/0x30
> > > [    2.396063]  bus_add_driver+0x150/0x200
> > > [    2.396401]  driver_register+0x78/0x130
> > > [    2.396737]  __platform_driver_register+0x28/0x34
> > > [    2.397150]  rockchip_i2s_driver_init+0x1c/0x28
> > > [    2.397550]  do_one_initcall+0x50/0x1c0
> > > [    2.397890]  kernel_init_freeable+0x208/0x28c
> > > [    2.398274]  kernel_init+0x28/0x13c
> > > [    2.398583]  ret_from_fork+0x10/0x20
> > > [    2.398901] Code: aa0003f4 a9025bf5 aa0003f6 aa0103f5 (f8418e93)
> > > [    2.399435] ---[ end trace 0000000000000000 ]---
> > > [    2.399887] Kernel panic - not syncing: Attempted to kill init!
> > > exitcode=0x0000000b
> > > [    2.400555] SMP: stopping secondary CPUs
> > > [    2.400984] Kernel Offset: 0x80000 from 0xffff800008000000
> > > [    2.401463] PHYS_OFFSET: 0x0
> > > [    2.401716] CPU features: 0x800,00127811,00001082
> > > [    2.402128] Memory Limit: none
> > > [    2.402406] ---[ end Kernel panic - not syncing: Attempted to kill
> > > init! exitcode=0x0000000b ]---
> > >
> > >
> > > --
> > > <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
> > >
> > > Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
> > > <http://twitter.com/#!/linaroorg> Twitter |
> > > <http://www.linaro.org/linaro-blog/> Blog
> > >
> > > _______________________________________________
> > > Linux-rockchip mailing list
> > > Linux-rockchip at lists.infradead.org
> > > http://lists.infradead.org/mailman/listinfo/linux-rockchip
> >
> >
> >
> > --
> > Michael Nazzareno Trimarchi
> > Co-Founder & Chief Executive Officer
> > M. +39 347 913 2170
> > michael at amarulasolutions.com
> > __________________________________
> >
> > Amarula Solutions BV
> > Joop Geesinkweg 125, 1114 AB, Amsterdam, NL
> > T. +31 (0)85 111 9172
> > info at amarulasolutions.com
> > www.amarulasolutions.com
>
>
>
> --
> Michael Nazzareno Trimarchi
> Co-Founder & Chief Executive Officer
> M. +39 347 913 2170
> michael at amarulasolutions.com
> __________________________________
>
> Amarula Solutions BV
> Joop Geesinkweg 125, 1114 AB, Amsterdam, NL
> T. +31 (0)85 111 9172
> info at amarulasolutions.com
> www.amarulasolutions.com



--
Michael Nazzareno Trimarchi
Co-Founder & Chief Executive Officer
M. +39 347 913 2170
michael at amarulasolutions.com
__________________________________

Amarula Solutions BV
Joop Geesinkweg 125, 1114 AB, Amsterdam, NL
T. +31 (0)85 111 9172
info at amarulasolutions.com
www.amarulasolutions.com



More information about the Linux-rockchip mailing list