At Wed, 30 Mar 2011 12:25:44 +0200, Svante Signell wrote:
On Tue, 2011-03-29 at 13:10 +0200, Takashi Iwai wrote:
At Tue, 29 Mar 2011 12:58:16 +0200, Svante Signell wrote:
On Tue, 2011-03-29 at 12:31 +0200, Takashi Iwai wrote:
At Tue, 29 Mar 2011 12:24:40 +0200, Svante Signell wrote:
...
But let's check the Oops first as below.
Also, please try to decode the line from the code shown in the Oops. It's a bit too little information to analyze, unfortunately.
...
As mentioned, you can decode the binary dump in Oops to guess which line of the source code corresponds to the Oops point. Use gdb or objdump to figure out the disassembled code. For example,
% objdump -D -l /lib/modules/$(uname -r)/kernel/sound/pci/hda/snd-hda-intel.ko
Then look for azx_probe. Calculate the position from the offset Oops gave, compare the hex codes with the data show in "Code" section of Oops. objdump with -l will show the source code line as well, so you'll see now more exactly where it was triggered.
Below is the kernel Oops and the objdump output related to azx_probe. Unfortunately I don't know where to find the Oops offset!
This is shown in below:
[ 4.632005] RIP: 0010:[<ffffffffa061f416>] [<ffffffffa061f416>] azx_probe+0x3ad/0x870 [snd_hda_intel]
The offset is 0x3ad. As azx_probe() in the disassembled code begins with 0x1fd, it points to 0x5aa (0x1fd + 0x3ad). You can see the disassembled code matches with the dump in "Code:" in Oops.
However, you objdump output doesn't give the line number. Did you install the corresponding debug package? Usually this is stripped in the main package and provided as an add-on.
thanks,
Takashi