[alsa-devel] [PATCH 1/2] ALSA: add LaCie Firewire Speakers/Griffin FireWave surround driver

Clemens Ladisch clemens at ladisch.de
Tue Feb 8 09:05:36 CET 2011


Stefan Richter wrote:
> BUG: unable to handle kernel paging request at [...]
> IP: [...] iso_packets_buffer_destroy+0x8/0x1d [snd_firewire_lib]
> [...]
> Call Trace:
>  [...] amdtp_out_stream_stop+0x3b/0x46 [snd_firewire_lib]
>  [...]

f8cc3400:   55                      push   %ebp
f8cc3401:   89 e5                   mov    %esp,%ebp
f8cc3403:   53                      push   %ebx
f8cc3404:   89 c3                   mov    %eax,%ebx
f8cc3406:   8b 02                   mov    (%edx),%eax
f8cc3408:  <8b>50 fc                mov    -0x4(%eax),%edx
f8cc340b:   89 d8                   mov    %ebx,%eax
f8cc340d:   e8 9a fe 02 00          call   0xf8cf32ac
f8cc3412:   8b 43 0c                mov    0xc(%ebx),%eax
f8cc3415:   e8 1f 62 3c c8          call   0xc1089639
f8cc341a:   5b                      pop    %ebx
f8cc341b:   c9                      leave
f8cc341c:   c3                      ret

The crash happens when iso_packets_buffer_destroy() tries to read
fw_parent_device(unit)->card.

b points to address 0xf3120c58, unit to 0xf1164df0.
fw_parent_device(unit) results in 0xf12e8bf4, which looks more or less
like a kmalloc()ed pointer, but is not correctly aligned if the standard
buddy allocator is used, and turns out not to be in a valid address
range.

There must be a wrong pointer somewhere in this chain, but I have no
clue where.


Regards,
Clemens


More information about the Alsa-devel mailing list