[alsa-devel] Problems with snd_hda_intel in Linux kernel 2.6.38

Takashi Iwai tiwai at suse.de
Wed Mar 30 12:59:12 CEST 2011


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


More information about the Alsa-devel mailing list