Re: panic in bttv_risc_planar

From: caszonyi
Date: Fri Dec 26 2003 - 19:49:29 EST


On Fri, 26 Dec 2003, Martin J. Bligh wrote:

> > Dec 26 17:59:08 grinch kernel: EIP is at bttv_risc_planar+0x140/0x2c0
>
> If you could take the vmlinux binary and do "gdb vmlinux", then
> "disassemble bttv_risc_planar" and post all the output, that'd help.
>

i did this but _after_ i recompiled the kernel with debug info
(CONFIG_DEBUG_INFO=y)

The result is attached


> Or ideally, recompile with -g, and use addr2line to find out exactly
> what it was.
>

I'm not familiar with addr2line :-(
I was trying this command line(the result is below):
//usr/src/linux-2.6.0 $ addr2line -e ./vmlinux 320
??:0

I obtain the same result if i use 0x140 instead of 320 (320 is decimal
for 0x140)

> M.
>GNU gdb 5.3
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-slackware-linux"...
Dump of assembler code for function bttv_risc_planar:
0xc0333d20 <bttv_risc_planar>: push %ebp
0xc0333d21 <bttv_risc_planar+1>: push %edi
0xc0333d22 <bttv_risc_planar+2>: push %esi
0xc0333d23 <bttv_risc_planar+3>: push %ebx
0xc0333d24 <bttv_risc_planar+4>: sub $0x28,%esp
0xc0333d27 <bttv_risc_planar+7>: mov 0x4c(%esp,1),%eax
0xc0333d2b <bttv_risc_planar+11>: mov 0x54(%esp,1),%edx
0xc0333d2f <bttv_risc_planar+15>: imul 0x54(%esp,1),%eax
0xc0333d34 <bttv_risc_planar+20>: mov 0x40(%esp,1),%ecx
0xc0333d38 <bttv_risc_planar+24>: mov 0x48(%esp,1),%edi
0xc0333d3c <bttv_risc_planar+28>: mov 0x58(%esp,1),%ebp
0xc0333d40 <bttv_risc_planar+32>: mov %ecx,0x4(%esp,1)
0xc0333d44 <bttv_risc_planar+36>: add %eax,%eax
0xc0333d46 <bttv_risc_planar+38>: shr $0xc,%eax
0xc0333d49 <bttv_risc_planar+41>: lea 0x2(%edx,%eax,1),%eax
0xc0333d4d <bttv_risc_planar+45>: mov 0x3c(%esp,1),%edx
0xc0333d51 <bttv_risc_planar+49>: lea (%eax,%eax,4),%eax
0xc0333d54 <bttv_risc_planar+52>: shl $0x2,%eax
0xc0333d57 <bttv_risc_planar+55>: mov %eax,0x8(%esp,1)
0xc0333d5b <bttv_risc_planar+59>: mov (%edx),%eax
0xc0333d5d <bttv_risc_planar+61>: mov %eax,(%esp,1)
0xc0333d60 <bttv_risc_planar+64>: call 0xc033fc10 <btcx_riscmem_alloc>
0xc0333d65 <bttv_risc_planar+69>: test %eax,%eax
0xc0333d67 <bttv_risc_planar+71>: js 0xc0333fb1 <bttv_risc_planar+657>
0xc0333d6d <bttv_risc_planar+77>: mov 0x40(%esp,1),%ecx
0xc0333d71 <bttv_risc_planar+81>: mov 0x4(%ecx),%ecx
0xc0333d74 <bttv_risc_planar+84>: movl $0x8000000e,(%ecx)
0xc0333d7a <bttv_risc_planar+90>: add $0x4,%ecx
0xc0333d7d <bttv_risc_planar+93>: movl $0x0,(%ecx)
0xc0333d83 <bttv_risc_planar+99>: mov 0x54(%esp,1),%eax
0xc0333d87 <bttv_risc_planar+103>: movl $0x0,0x24(%esp,1)
0xc0333d8f <bttv_risc_planar+111>: add $0x4,%ecx
0xc0333d92 <bttv_risc_planar+114>: mov 0x44(%esp,1),%esi
0xc0333d96 <bttv_risc_planar+118>: cmp %eax,0x24(%esp,1)
0xc0333d9a <bttv_risc_planar+122>: mov %ecx,0x18(%esp,1)
0xc0333d9e <bttv_risc_planar+126>: mov %esi,0x14(%esp,1)
0xc0333da2 <bttv_risc_planar+130>: mov %esi,0x10(%esp,1)
0xc0333da6 <bttv_risc_planar+134>: jae 0xc0333fa4 <bttv_risc_planar+644>
0xc0333dac <bttv_risc_planar+140>: mov 0x3c(%esp,1),%edx
0xc0333db0 <bttv_risc_planar+144>: mov 0x3d0(%edx),%eax
0xc0333db6 <bttv_risc_planar+150>: test %eax,%eax
0xc0333db8 <bttv_risc_planar+152>: je 0xc0333dcb <bttv_risc_planar+171>
0xc0333dba <bttv_risc_planar+154>: mov 0x54(%esp,1),%eax
0xc0333dbe <bttv_risc_planar+158>: sub $0x4,%eax
0xc0333dc1 <bttv_risc_planar+161>: cmp %eax,0x24(%esp,1)
0xc0333dc5 <bttv_risc_planar+165>: jae 0xc0333f92 <bttv_risc_planar+626>
0xc0333dcb <bttv_risc_planar+171>: cmpl $0x1,0x64(%esp,1)
0xc0333dd0 <bttv_risc_planar+176>: je 0xc0333fd9 <bttv_risc_planar+697>
0xc0333dd6 <bttv_risc_planar+182>: cmpl $0x1,0x64(%esp,1)
0xc0333ddb <bttv_risc_planar+187>: movl $0x1,0x1c(%esp,1)
0xc0333de3 <bttv_risc_planar+195>: jb 0xc0333df8 <bttv_risc_planar+216>
0xc0333de5 <bttv_risc_planar+197>: cmpl $0x2,0x64(%esp,1)
0xc0333dea <bttv_risc_planar+202>: je 0xc0333fc3 <bttv_risc_planar+675>
0xc0333df0 <bttv_risc_planar+208>: movl $0x0,0x1c(%esp,1)
0xc0333df8 <bttv_risc_planar+216>: mov 0x4c(%esp,1),%eax
0xc0333dfc <bttv_risc_planar+220>: test %eax,%eax
0xc0333dfe <bttv_risc_planar+222>: mov %eax,0x20(%esp,1)
0xc0333e02 <bttv_risc_planar+226>: je 0xc0333f7a <bttv_risc_planar+602>
0xc0333e08 <bttv_risc_planar+232>: mov 0x14(%esp,1),%edx
0xc0333e0c <bttv_risc_planar+236>: mov 0xc(%edx),%ebx
0xc0333e0f <bttv_risc_planar+239>: cmp %ebx,%edi
0xc0333e11 <bttv_risc_planar+241>: mov %ebx,%eax
0xc0333e13 <bttv_risc_planar+243>: jb 0xc0333e29 <bttv_risc_planar+265>
0xc0333e15 <bttv_risc_planar+245>: addl $0x10,0x14(%esp,1)
0xc0333e1a <bttv_risc_planar+250>: sub %eax,%edi
0xc0333e1c <bttv_risc_planar+252>: mov 0x14(%esp,1),%ecx
0xc0333e20 <bttv_risc_planar+256>: mov 0xc(%ecx),%ebx
0xc0333e23 <bttv_risc_planar+259>: cmp %ebx,%edi
0xc0333e25 <bttv_risc_planar+261>: mov %ebx,%eax
0xc0333e27 <bttv_risc_planar+263>: jae 0xc0333e15 <bttv_risc_planar+245>
0xc0333e29 <bttv_risc_planar+265>: mov 0xc(%esi),%eax
0xc0333e2c <bttv_risc_planar+268>: cmp %eax,%ebp
0xc0333e2e <bttv_risc_planar+270>: mov %eax,0xc(%esp,1)
0xc0333e32 <bttv_risc_planar+274>: jb 0xc0333e46 <bttv_risc_planar+294>
0xc0333e34 <bttv_risc_planar+276>: add $0x10,%esi
0xc0333e37 <bttv_risc_planar+279>: sub %eax,%ebp
0xc0333e39 <bttv_risc_planar+281>: mov 0xc(%esi),%edx
0xc0333e3c <bttv_risc_planar+284>: cmp %edx,%ebp
0xc0333e3e <bttv_risc_planar+286>: mov %edx,0xc(%esp,1)
0xc0333e42 <bttv_risc_planar+290>: mov %edx,%eax
0xc0333e44 <bttv_risc_planar+292>: jae 0xc0333e34 <bttv_risc_planar+276>
0xc0333e46 <bttv_risc_planar+294>: mov 0x5c(%esp,1),%eax
0xc0333e4a <bttv_risc_planar+298>: test %eax,%eax
0xc0333e4c <bttv_risc_planar+300>: je 0xc0333e78 <bttv_risc_planar+344>
0xc0333e4e <bttv_risc_planar+302>: mov 0x10(%esp,1),%ecx
0xc0333e52 <bttv_risc_planar+306>: mov 0xc(%ecx),%eax
0xc0333e55 <bttv_risc_planar+309>: cmp %eax,0x5c(%esp,1)
0xc0333e59 <bttv_risc_planar+313>: jb 0xc0333e78 <bttv_risc_planar+344>
0xc0333e5b <bttv_risc_planar+315>: nop
0xc0333e5c <bttv_risc_planar+316>: lea 0x0(%esi,1),%esi
0xc0333e60 <bttv_risc_planar+320>: addl $0x10,0x10(%esp,1)
0xc0333e65 <bttv_risc_planar+325>: sub %eax,0x5c(%esp,1)
0xc0333e69 <bttv_risc_planar+329>: je 0xc0333e78 <bttv_risc_planar+344>
0xc0333e6b <bttv_risc_planar+331>: mov 0x10(%esp,1),%edx
0xc0333e6f <bttv_risc_planar+335>: mov 0xc(%edx),%eax
0xc0333e72 <bttv_risc_planar+338>: cmp %eax,0x5c(%esp,1)
0xc0333e76 <bttv_risc_planar+342>: jae 0xc0333e60 <bttv_risc_planar+320>
0xc0333e78 <bttv_risc_planar+344>: mov 0x20(%esp,1),%ecx
0xc0333e7c <bttv_risc_planar+348>: mov %ebx,%edx
0xc0333e7e <bttv_risc_planar+350>: sub %edi,%edx
0xc0333e80 <bttv_risc_planar+352>: lea (%ecx,%edi,1),%eax
0xc0333e83 <bttv_risc_planar+355>: cmp %ebx,%eax
0xc0333e85 <bttv_risc_planar+357>: mov 0x1c(%esp,1),%eax
0xc0333e89 <bttv_risc_planar+361>: mov %ecx,%ebx
0xc0333e8b <bttv_risc_planar+363>: cmova %edx,%ebx
0xc0333e8e <bttv_risc_planar+366>: test %eax,%eax
0xc0333e90 <bttv_risc_planar+368>: je 0xc0333fb9 <bttv_risc_planar+665>
0xc0333e96 <bttv_risc_planar+374>: movzbl 0x60(%esp,1),%ecx
0xc0333e9b <bttv_risc_planar+379>: mov %ebx,%eax
0xc0333e9d <bttv_risc_planar+381>: shr %cl,%eax
0xc0333e9f <bttv_risc_planar+383>: lea (%eax,%ebp,1),%eax
0xc0333ea2 <bttv_risc_planar+386>: cmp 0xc(%esp,1),%eax
0xc0333ea6 <bttv_risc_planar+390>: jbe 0xc0333eb0 <bttv_risc_planar+400>
0xc0333ea8 <bttv_risc_planar+392>: mov 0xc(%esp,1),%ebx
0xc0333eac <bttv_risc_planar+396>: sub %ebp,%ebx
0xc0333eae <bttv_risc_planar+398>: shl %cl,%ebx
0xc0333eb0 <bttv_risc_planar+400>: movzbl 0x60(%esp,1),%ecx
0xc0333eb5 <bttv_risc_planar+405>: mov %ebx,%eax
0xc0333eb7 <bttv_risc_planar+407>: shr %cl,%eax
0xc0333eb9 <bttv_risc_planar+409>: mov 0x10(%esp,1),%ecx
0xc0333ebd <bttv_risc_planar+413>: add 0x5c(%esp,1),%eax
0xc0333ec1 <bttv_risc_planar+417>: mov 0xc(%ecx),%edx
0xc0333ec4 <bttv_risc_planar+420>: cmp %edx,%eax
0xc0333ec6 <bttv_risc_planar+422>: jbe 0xc0333ed5 <bttv_risc_planar+437>
0xc0333ec8 <bttv_risc_planar+424>: mov %edx,%ebx
0xc0333eca <bttv_risc_planar+426>: movzbl 0x60(%esp,1),%ecx
0xc0333ecf <bttv_risc_planar+431>: sub 0x5c(%esp,1),%ebx
0xc0333ed3 <bttv_risc_planar+435>: shl %cl,%ebx
0xc0333ed5 <bttv_risc_planar+437>: mov $0x90000000,%edx
0xc0333eda <bttv_risc_planar+442>: mov %edx,%eax
0xc0333edc <bttv_risc_planar+444>: mov 0x20(%esp,1),%ecx
0xc0333ee0 <bttv_risc_planar+448>: or $0x8000000,%eax
0xc0333ee5 <bttv_risc_planar+453>: cmp %ecx,0x4c(%esp,1)
0xc0333ee9 <bttv_risc_planar+457>: cmove %eax,%edx
0xc0333eec <bttv_risc_planar+460>: mov %edx,%eax
0xc0333eee <bttv_risc_planar+462>: or $0x4000000,%eax
0xc0333ef3 <bttv_risc_planar+467>: cmp %ecx,%ebx
0xc0333ef5 <bttv_risc_planar+469>: cmove %eax,%edx
0xc0333ef8 <bttv_risc_planar+472>: mov 0x18(%esp,1),%eax
0xc0333efc <bttv_risc_planar+476>: or %ebx,%edx
0xc0333efe <bttv_risc_planar+478>: mov %edx,(%eax)
0xc0333f00 <bttv_risc_planar+480>: movzbl 0x60(%esp,1),%ecx
0xc0333f05 <bttv_risc_planar+485>: mov %ebx,%edx
0xc0333f07 <bttv_risc_planar+487>: add $0x4,%eax
0xc0333f0a <bttv_risc_planar+490>: mov %eax,0x18(%esp,1)
0xc0333f0e <bttv_risc_planar+494>: shr %cl,%edx
0xc0333f10 <bttv_risc_planar+496>: mov 0x18(%esp,1),%ecx
0xc0333f14 <bttv_risc_planar+500>: mov %edx,%eax
0xc0333f16 <bttv_risc_planar+502>: shl $0x10,%eax
0xc0333f19 <bttv_risc_planar+505>: or %edx,%eax
0xc0333f1b <bttv_risc_planar+507>: mov %eax,(%ecx)
0xc0333f1d <bttv_risc_planar+509>: add $0x4,%ecx
0xc0333f20 <bttv_risc_planar+512>: mov %ecx,0x18(%esp,1)
0xc0333f24 <bttv_risc_planar+516>: mov 0x14(%esp,1),%ecx
0xc0333f28 <bttv_risc_planar+520>: mov 0x8(%ecx),%eax
0xc0333f2b <bttv_risc_planar+523>: mov 0x18(%esp,1),%ecx
0xc0333f2f <bttv_risc_planar+527>: add %edi,%eax
0xc0333f31 <bttv_risc_planar+529>: add %ebx,%edi
0xc0333f33 <bttv_risc_planar+531>: mov %eax,(%ecx)
0xc0333f35 <bttv_risc_planar+533>: mov 0x1c(%esp,1),%eax
0xc0333f39 <bttv_risc_planar+537>: add $0x4,%ecx
0xc0333f3c <bttv_risc_planar+540>: mov %ecx,0x18(%esp,1)
0xc0333f40 <bttv_risc_planar+544>: test %eax,%eax
0xc0333f42 <bttv_risc_planar+546>: je 0xc0333f70 <bttv_risc_planar+592>
0xc0333f44 <bttv_risc_planar+548>: mov 0x8(%esi),%eax
0xc0333f47 <bttv_risc_planar+551>: add %ebp,%eax
0xc0333f49 <bttv_risc_planar+553>: add %edx,%ebp
0xc0333f4b <bttv_risc_planar+555>: mov %eax,(%ecx)
0xc0333f4d <bttv_risc_planar+557>: mov 0x5c(%esp,1),%eax
0xc0333f51 <bttv_risc_planar+561>: add $0x4,%ecx
0xc0333f54 <bttv_risc_planar+564>: mov %ecx,0x18(%esp,1)
0xc0333f58 <bttv_risc_planar+568>: mov 0x10(%esp,1),%ecx
0xc0333f5c <bttv_risc_planar+572>: add 0x8(%ecx),%eax
0xc0333f5f <bttv_risc_planar+575>: mov 0x18(%esp,1),%ecx
0xc0333f63 <bttv_risc_planar+579>: mov %eax,(%ecx)
0xc0333f65 <bttv_risc_planar+581>: add %edx,0x5c(%esp,1)
0xc0333f69 <bttv_risc_planar+585>: add $0x4,%ecx
0xc0333f6c <bttv_risc_planar+588>: mov %ecx,0x18(%esp,1)
0xc0333f70 <bttv_risc_planar+592>: sub %ebx,0x20(%esp,1)
0xc0333f74 <bttv_risc_planar+596>: jne 0xc0333e08 <bttv_risc_planar+232>
0xc0333f7a <bttv_risc_planar+602>: mov 0x1c(%esp,1),%ebx
0xc0333f7e <bttv_risc_planar+606>: add 0x50(%esp,1),%edi
0xc0333f82 <bttv_risc_planar+610>: test %ebx,%ebx
0xc0333f84 <bttv_risc_planar+612>: je 0xc0333f92 <bttv_risc_planar+626>
0xc0333f86 <bttv_risc_planar+614>: mov 0x68(%esp,1),%eax
0xc0333f8a <bttv_risc_planar+618>: add 0x68(%esp,1),%ebp
0xc0333f8e <bttv_risc_planar+622>: add %eax,0x5c(%esp,1)
0xc0333f92 <bttv_risc_planar+626>: incl 0x24(%esp,1)
0xc0333f96 <bttv_risc_planar+630>: mov 0x54(%esp,1),%edx
0xc0333f9a <bttv_risc_planar+634>: cmp %edx,0x24(%esp,1)
0xc0333f9e <bttv_risc_planar+638>: jb 0xc0333dac <bttv_risc_planar+140>
0xc0333fa4 <bttv_risc_planar+644>: mov 0x18(%esp,1),%eax
0xc0333fa8 <bttv_risc_planar+648>: mov 0x40(%esp,1),%ecx
0xc0333fac <bttv_risc_planar+652>: mov %eax,0x8(%ecx)
0xc0333faf <bttv_risc_planar+655>: xor %eax,%eax
0xc0333fb1 <bttv_risc_planar+657>: add $0x28,%esp
0xc0333fb4 <bttv_risc_planar+660>: pop %ebx
0xc0333fb5 <bttv_risc_planar+661>: pop %esi
0xc0333fb6 <bttv_risc_planar+662>: pop %edi
0xc0333fb7 <bttv_risc_planar+663>: pop %ebp
0xc0333fb8 <bttv_risc_planar+664>: ret
0xc0333fb9 <bttv_risc_planar+665>: mov $0xb0000000,%edx
0xc0333fbe <bttv_risc_planar+670>: jmp 0xc0333eda <bttv_risc_planar+442>
0xc0333fc3 <bttv_risc_planar+675>: xor %eax,%eax
0xc0333fc5 <bttv_risc_planar+677>: testl $0x3,0x24(%esp,1)
0xc0333fcd <bttv_risc_planar+685>: sete %al
0xc0333fd0 <bttv_risc_planar+688>: mov %eax,0x1c(%esp,1)
0xc0333fd4 <bttv_risc_planar+692>: jmp 0xc0333df8 <bttv_risc_planar+216>
0xc0333fd9 <bttv_risc_planar+697>: mov 0x24(%esp,1),%ecx
0xc0333fdd <bttv_risc_planar+701>: xor $0x1,%ecx
0xc0333fe0 <bttv_risc_planar+704>: and $0x1,%ecx
0xc0333fe3 <bttv_risc_planar+707>: mov %ecx,0x1c(%esp,1)
0xc0333fe7 <bttv_risc_planar+711>: jmp 0xc0333df8 <bttv_risc_planar+216>
End of assembler dump.