Re: Crash in acpi_ns_validate_handle triggered by soundwire on Linux 5.10

Marcin Ślusarz
2021-01-27T16:38:28Z

czw., 21 sty 2021 o 18:47 Marcin Ślusarz <marcin.slusarz@gmail.com> napisał(a):
>
> śr., 20 sty 2021 o 23:28 Pierre-Louis Bossart
> <pierre-louis.bossart@linux.intel.com> napisał(a):
> > >> Linux 5.10 fails to boot on my IceLake laptop, where 5.9 worked fine.
> > >> I'm not sure whether it's a bug in ACPI or Soundwire subsystem, so I'm
> > >> sending this to both
> > >> lists. The W taint flag is because of an unrelated nouveau failure (It
> > >> was busted on 5.9, and is
> > >> still on 5.10). Full kernel log down below.
> > >> It's from a distro kernel, but I can build my own kernel with patches if needed.
> > >
> > > Please try to add a check for handle against NULL to
> > > snd_intel_dsp_check_soundwire() after
> > >
> > > handle = ACPI_HANDLE(&pci->dev);
> > >
> > > and see if this makes any difference.
> > >
> > > This should check handle against NULL anyway, even if it didn't crash later on.
>
> I'll do that later.

Weird, I can't reproduce this problem with my self-compiled kernel :/
I don't even see soundwire modules loaded in. Manually loading them of course
doesn't do much.

Previously I could boot into the "faulty" kernel by using "recovery mode", but
I can't do that anymore - it crashes too.

Maybe there's some kind of race and this bug depends on some specific
ordering of events?

>
> >
> > Is there a way you can share the DSDT?
>
> I uploaded it here: https://people.freedesktop.org/~mslusarz/tmp/dsdt.dat
>
> >
> > The only thing we do in that sdw_intel_acpi_scan() function is check for
> > an _ADR and read two _DSD properties. I think it's been 2 years since we
> > wrote it and never had an issue, never say never I guess...
> >
> > If you want to bypass this problem for the time being, you can add a
> > kernel option in /etc/modprobe.d/alsa-base.conf
> >
> > options snd-intel-dspcfg dsp_driver=1
> >
> > that will force the use of the HDaudio legacy driver and bypass the
> > driver autodetection.

Yeah, this also works.