On Thu, 11 May 2023 17:12:23 +0200, Olliver Schinagl wrote:
Hey list,
I've noticed the following crash since the last few days, causing audio to no longer to work. It could be related to me updating the firmware (bios) not too long ago (I load Mac OS every few months via an external drive) which caused the firmware to be updated. Or, it was a kernel update, that came along every few weeks.
I'll try to find my archlinux bugzilla stuff, to report it there as well, but I don't think they are actively patching the sound stuff.
The last commit I'm seeing on `patch_cirrus.c` seems to be from aug 2022, so that can't be it, though incidentally, the change is with regards to support for iMac 12,1 model, which is interesting as the number is the same.
I understand you guys probably get tons of bug reports, but best to leave it here, just in case.
[ 90.497004] CPU: 3 PID: 343 Comm: modprobe Not tainted 6.3.1-arch2-1 #1 4c16b0b90f71a940c7f1bb2eb00cdd9db2a83452 [ 90.497008] Hardware name: Apple Inc. MacBookPro12,1/Mac-E43C1C25D4880AD6, BIOS 481.0.0.0.0 01/12/2023 [ 90.497010] RIP: 0010:get_line_out_pfx+0x2dd/0x3e0 [snd_hda_codec_generic]
Can you try to decode which line does it hit?
Also, as a blind shot, does the patch below work around the bug?
thanks,
Takashi
-- 8< -- --- a/sound/pci/hda/hda_generic.c +++ b/sound/pci/hda/hda_generic.c @@ -1182,7 +1182,7 @@ static const char *get_line_out_pfx(struct hda_codec *codec, int ch,
/* multi-io channels */ if (ch >= cfg->line_outs) - return channel_name[ch]; + goto fixed_names;
switch (cfg->line_out_type) { case AUTO_PIN_SPEAKER_OUT: @@ -1234,8 +1234,9 @@ static const char *get_line_out_pfx(struct hda_codec *codec, int ch, if (cfg->line_outs == 1 && !spec->multi_ios) return "Line Out";
+ fixed_names: if (ch >= ARRAY_SIZE(channel_name)) { - snd_BUG(); + codec_err(codec, "Too many channels in %s: %d\n", __func__, ch); return "PCM"; }