Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 23 Sep 2012 22:10:07 +0200
From:      Barbara <barbara.freebsd@gmail.com>
To:        freebsd-stable@freebsd.org
Subject:   Fatal trap 12: hda
Message-ID:  <CAETvGMAut5%2BjTcwZzCGNeVjtYdJP7WBhwz-Owjx4N6KB=tSahA@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
After updating src on RELENG_9 from r240236 to r240821 I have rebuilt
my world+kernel.
On reboot I had a kernel panic, "supervisor read, page not present"
for process swapper.
Trying to reboot in Single User Mode I accidentally disabled ACPI.
Luckily the machine booted succesfully but there was nothing new in
/var/crash.
Then I tried again with ACPI enabled: same kernel panic.
So I run nm on the instruction pointer of the panic and I noticed that
it was in hdaa_sense_init, in sys/dev/sound/pci/hda/hdaa.c.
BTW, I have "device sound" and "device snd_hda" in my KERNCONF, and
the sound hw detection happens before HDs, is that the reason why I
wasn't able to get a dump or dumping using DDB and the panicking
process is swapper? Is there any trick I'm missing for that?

Booting in verbose mode and comparing the output with ACPI enabled
(where the panic happens) and disabled, I guessed that the problem was
where "No presence detection support at nid..." is printed, as it was
missing in the former case for nid 27 - Headphone (Green Jack). With
ACPI disabled the value was looking quite weird: 36765696.
So I made the following change:

--------------------------------------------------------------------------------
--- sys/dev/sound/pci/hda/hdaa.c.orig	2012-09-22 20:06:20.000000000 +0200
+++ sys/dev/sound/pci/hda/hdaa.c	2012-09-23 20:39:32.000000000 +0200
@@ -627,7 +627,7 @@
 			    (HDA_CONFIG_DEFAULTCONF_MISC(w->wclass.pin.config) & 1) != 0) {
 				device_printf(devinfo->dev,
 				    "No presence detection support at nid %d\n",
-				    as[i].pins[15]);
+				    as->pins[15]);
 			} else {
 				if (w->unsol < 0)
 					poll = 1;
--------------------------------------------------------------------------------

Maybe the fix is not correct, but at least the new kernel boots successfully.
Can someone review that?
I tried looking in svn commits between the two builds, but I don't
know what exposed the problem.
If anyone is interested in my verbose log, or doing some tests, please ask.

Barbara



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAETvGMAut5%2BjTcwZzCGNeVjtYdJP7WBhwz-Owjx4N6KB=tSahA>