videodev.o issues with 2.5.x

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



Hey,

this is probably my own mistake, but since I can't figure out what it
is, I'll ask here...

I'm trying to get my driver to work under 2.5.65. For this, I use the
Makefile that you can see at [1], running under 2.5.65. The BTTV module
from the kernel works. However, when loading and subsequentially trying
to use my own module (xawtv), I get a kernel oops:

-
Unable to handle kernel paging request at virtual address d08d7ee0
 printing eip:
d08b50ce
*pde = 013fa067
*pte = 00000000
Oops: 0000
CPU:    0
EIP:    0060:[<d08b50ce>]    Not tainted
EFLAGS: 00010282
EIP is at video_open+0xae/0x210 [videodev]
eax: d08d7ee0   ebx: d093dca0   ecx: d08b71a0   edx: cf74b8c0
esi: d08b71e0   edi: 00000004   ebp: d08b7340   esp: c974fef4
ds: 007b   es: 007b   ss: 0068
Process v4l-conf (pid: 1061, threadinfo=c974e000 task=ca43d290)
Stack: 00000000 c974ff3c c974fe30 c974ff04 00000000 00000000 ce192005
00008003
       00000004 c974e000 cd4b7b60 cf74b8c0 00000000 c0150108 cf74b8c0
cd4b7b60
       00000001 cd4b7b60 cf74b8c0 cf74b954 c014782b cf74b8c0 cd4b7b60
c0148311
Call Trace:
 [<c0150108>] chrdev_open+0x58/0x90
 [<c014782b>] dentry_open+0xfb/0x1e0
 [<c0148311>] vfs_read+0xc1/0x150
 [<c014771d>] filp_open+0x4d/0x60
 [<c01537de>] getname+0x5e/0xa0
 [<c0147b35>] sys_open+0x35/0x70
 [<c010a86f>] syscall_call+0x7/0xb
   
Code: 8b 10 bf 01 00 00 00 85 d2 74 30 b8 00 e0 ff ff 21 e0 ff 40
-

Funny, because it's inside videodev.o. Debugging this oops (ksymoops)
even gives more useful (ahem) info:

-
>>EIP; d08b50ce <__crc_ide_spin_wait_hwgroup+1d6c31/4f885f>   <=====
Code;  d08b50ce <__crc_ide_spin_wait_hwgroup+1d6c31/4f885f>
00000000 <_EIP>:
Code;  d08b50ce <__crc_ide_spin_wait_hwgroup+1d6c31/4f885f>   <=====
   0:   8b 10                     mov    (%eax),%edx   <=====
Code;  d08b50d0 <__crc_ide_spin_wait_hwgroup+1d6c33/4f885f>
   2:   bf 01 00 00 00            mov    $0x1,%edi
Code;  d08b50d5 <__crc_ide_spin_wait_hwgroup+1d6c38/4f885f>
   7:   85 d2                     test   %edx,%edx
Code;  d08b50d7 <__crc_ide_spin_wait_hwgroup+1d6c3a/4f885f>
   9:   74 30                     je     3b <_EIP+0x3b> d08b5109
<__crc_ide_spin_wait_hwgroup+1d6c6c/4f885f>
Code;  d08b50d9 <__crc_ide_spin_wait_hwgroup+1d6c3c/4f885f>
   b:   b8 00 e0 ff ff            mov    $0xffffe000,%eax
Code;  d08b50de <__crc_ide_spin_wait_hwgroup+1d6c41/4f885f>
  10:   21 e0                     and    %esp,%eax
Code;  d08b50e0 <__crc_ide_spin_wait_hwgroup+1d6c43/4f885f>
  12:   ff 40 00                  incl   0x0(%eax)
-

No clue what that means. Obviously, all this works under 2.4.20 and it
uses the new videodev2 subsystem (file_ops-based). If I leave some
random warning in /usr/src/linux-2.5.65/include/linux/videodev2.h, I can
see the warning in the compiler output which means that the correct
videodev header files are being used to compiler both kernel and module,
so it's not an ABI mismatch issue, afaics.

In short: help! Why does this crash?

Ronald

[1]
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/mjpeg/driver-zoran/Makefile?rev=1.3.2.6&content-type=text/vnd.viewcvs-markup

-- 
Ronald Bultje <rbultje@xxxxxxxxxxxxxxxxxxx>





[Index of Archives]     [Linux DVB]     [Video Disk Recorder]     [Asterisk]     [Photo]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Free Photo Albums]     [Fedora Users]     [Fedora Women]     [ALSA Users]     [ALSA Devel]     [Linux USB]

Powered by Linux