I was just checking the mainline patch queues and didn't see an obvious
variant of this change. Are you seeing something upstream (submitted by
Takashi) ?

Bruce

On Mon, Apr 29, 2019 at 11:38 PM Liwei Song <liwei.s...@windriver.com>
wrote:

>
>
> On 04/30/2019 03:38 AM, Bruce Ashfield wrote:
> > On Sun, Apr 28, 2019 at 4:42 AM Liwei Song <liwei.s...@windriver.com>
> wrote:
> >
> >> Fix the following BUG:
> >>
> >>
> > Is this also a bug in the mainline kernel ? If so, what's the resolution
> > for the issue there ?
>
> Yes, it is also exist in mainline kernel, I will send the same patch to
> there.
>
> Thanks,
> Liwei.
>
>
> >
> > Bruce
> >
> >
> >
> >> BUG: unable to handle kernel NULL pointer dereference at
> 000000000000000c
> >> Workqueue: events azx_probe_work [snd_hda_intel]
> >> RIP: 0010:snd_hdac_bus_update_rirb+0x80/0x160 [snd_hda_core]
> >> Call Trace:
> >>  <IRQ>
> >>  azx_interrupt+0x78/0x140 [snd_hda_codec]
> >>  __handle_irq_event_percpu+0x49/0x300
> >>  handle_irq_event_percpu+0x23/0x60
> >>  handle_irq_event+0x3c/0x60
> >>  handle_edge_irq+0xdb/0x180
> >>  handle_irq+0x23/0x30
> >>  do_IRQ+0x6a/0x140
> >>  common_interrupt+0xf/0xf
> >>
> >> The Call Trace happened when run kdump on a NFS rootfs system.
> >> Exist the following calling sequence when boot the second kernel:
> >>
> >> azx_first_init()
> >>    --> azx_acquire_irq()
> >>                       <-- interrupt come in, azx_interrupt() was called
> >>    --> hda_intel_init_chip()
> >>       --> azx_init_chip()
> >>          --> snd_hdac_bus_init_chip()
> >>               --> snd_hdac_bus_init_cmd_io();
> >>                     --> init rirb.buf and corb.buf
> >>
> >> Interrupt happened after azx_acquire_irq() while RIRB still didn't got
> >> initialized, then NULL pointer will be used when process the interrupt.
> >>
> >> Considering adjust the calling sequence may import new issue like
> >> 2eeeb4f4733b ("ASoC: Intel: Skylake: Acquire irq after RIRB allocation")
> >> so here simply check the value of RIRB to avoid using NULL pointer.
> >>
> >> Fixes: 14752412721c ("ALSA: hda - Add the controller helper codes to
> >> hda-core module")
> >> Signed-off-by: Liwei Song <liwei.s...@windriver.com>
> >> ---
> >>  sound/hda/hdac_controller.c | 3 +++
> >>  1 file changed, 3 insertions(+)
> >>
> >> diff --git a/sound/hda/hdac_controller.c b/sound/hda/hdac_controller.c
> >> index 74244d8e2909..2f0fa5353361 100644
> >> --- a/sound/hda/hdac_controller.c
> >> +++ b/sound/hda/hdac_controller.c
> >> @@ -195,6 +195,9 @@ void snd_hdac_bus_update_rirb(struct hdac_bus *bus)
> >>                 return;
> >>         bus->rirb.wp = wp;
> >>
> >> +       if (!bus->rirb.buf)
> >> +               return;
> >> +
> >>         while (bus->rirb.rp != wp) {
> >>                 bus->rirb.rp++;
> >>                 bus->rirb.rp %= AZX_MAX_RIRB_ENTRIES;
> >> --
> >> 2.7.4
> >>
> >>
> >
>


-- 
- Thou shalt not follow the NULL pointer, for chaos and madness await thee
at its end
- "Use the force Harry" - Gandalf, Star Trek II
-- 
_______________________________________________
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto

Reply via email to