[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <s5hpmr86py3.wl-tiwai@suse.de>
Date: Wed, 10 Nov 2021 15:33:08 +0100
From: Takashi Iwai <tiwai@...e.de>
To: Scott Branden <scott.branden@...adcom.com>
Cc: perex@...ex.cz, tiwai@...e.com, ranjani.sridharan@...ux.intel.com,
broonie@...nel.org, kai.vehmanen@...ux.intel.com,
alsa-devel@...a-project.org, linux-kernel@...r.kernel.org,
regressions@...mhuis.info
Subject: Re: 5.15 Linux Regression in sound hda
On Tue, 09 Nov 2021 22:12:30 +0100,
Scott Branden wrote:
>
> I'm reporting a new WARN_ON in sound/hda/hdac_bus.c that was not
> present in 5.15. Sorry, I don't have time to bisect this right now
> but report is below.
>
> dmesg in 5.14 kernel was:
> snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops 0xffffffffaa2ac520)
> GACT probability on
> Mirror/redirect action on
> Simple TC action Loaded
> u32 classifier
> Performance counters on
> input device check on
> Actions configured
> hdaudio hdaudioC0D0: Unable to bind the codec
> hdaudio hdaudioC0D2: Unable to bind the codec
>
> dmesg in 5.15 kernel produces WARN_ON in sound/hda/hdac_bus.c
> snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops 0xffffffffad8b02a0)
> GACT probability on
> Mirror/redirect action on
> Simple TC action Loaded
> u32 classifier
> Performance counters on
> input device check on
> Actions configured
> snd_hda_intel 0000:00:1f.3: Cannot probe codecs, giving up
> Initializing XFRM netlink socket
> ------------[ cut here ]------------
> NET: Registered PF_INET6 protocol family
> WARNING: CPU: 14 PID: 186 at sound/hda/hdac_bus.c:73
This indicates the leftover codecs on the bus, and it's likely
triggered by the recent change to allow retrying the codec probes.
Did this HD-audio stuff work at all before 5.15? The codec bind error
itself shouldn't be brought by that change.
The warning itself can be solved by the patch below, I suppose
(note: totally untested!)
thanks,
Takashi
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -2327,7 +2327,8 @@ static int azx_probe_continue(struct azx *chip)
out_free:
if (err < 0) {
- azx_free(chip);
+ pci_set_drvdata(pci, NULL);
+ snd_card_free(chip->card);
return err;
}
Powered by blists - more mailing lists