On Mon, May 6, 2019 at 9:45 PM Liwei Song <liwei.s...@windriver.com> wrote:

>
>
> On 05/07/2019 03:51 AM, Bruce Ashfield wrote:
> > 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) ?
>
> Hi Bruce,
>
> This patch was reject by upstream, Takashi use another patch fix this
> issue,
> I saw it is now exist at sound.git, and I will backport it after it is
> merged
> to mainline kernel.
>
> https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git/commit/?id=f495222e28275222ab6fd93813bd3d462e16d340
>
> So please ignore this one.
>

Sounds good.  I'll wait for your new patch and drop this from my "watch"
list.

Cheers,

Bruce



>
> Thanks,
> Liwei.
>
>
> >
> > 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