[LAU] further emagic woes
Clemens Ladisch
clemens at ladisch.de
Wed Nov 18 02:56:23 EST 2009
David Woodhouse wrote:
> On Tue, 2009-11-17 at 09:01 +0100, Clemens Ladisch wrote:
> > David, do you have any clue what could be going on?
>
> Not really
The code bytes disassemble to the following:
f80d2460: 31 db xor %ebx,%ebx
f80d2462: 8b 4d e8 mov -0x18(%ebp),%ecx
f80d2465: 8b 55 e4 mov -0x1c(%ebp),%edx
f80d2468: 8b 45 e0 mov -0x20(%ebp),%eax
f80d246b: c7 44 24 04 a5 00 00 movl $0xa5,0x4(%esp)
f80d2472: 00
f80d2473: 89 34 24 mov %esi,(%esp)
f80d2476: e8 94 fb ff ff call f80d208a
f80d247b: 85 c0 test %eax,%eax
f80d247d: 0f 88 21 03 00 00 js f80d2827
f80d2483: 85 f6 test %esi,%esi
f80d2485: 0f 84 9c 00 00 00 je f80d25b2
f80d248b: 8b 0b mov (%ebx),%ecx <-- crash here
f80d248d: 31 f6 xor %esi,%esi
f80d248f: 0f c9 bswap %ecx
f80d2491: 85 db test %ebx,%ebx
f80d2493: 89 4d e4 mov %ecx,-0x1c(%ebp)
f80d2496: 74 ca je f80d2462
f80d2498: 0f b7 43 04 movzwl 0x4(%ebx),%eax
f80d249c: 0f b7 d0 movzwl %ax,%edx
The offending command is obviously line 157 of emi62.c.
> this driver was using the same type of 'hex records' before we
> touched it.
rec being NULL is how the ihex helper functions signal the end of the
firmware data; the old driver just had a harmless empty record.
emi26.c uses just "rec" as outer loop condition; that ought to work.
HTH
Clemens
More information about the Linux-audio-user
mailing list