Re: snd_hda_codec_cirrus kernel oops

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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";
 	}
 



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux