Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linux-dvb] Re: Demux stops to work when tuning too many time
Valsecchi Patrick wrote:
> The oops is in attachment, but I don't think it will help.
...
> Jan 13 15:59:59 pc0125 kernel: DVB: registering new adapter (TT-Budget/WinTV-NOVA-C PCI).
> Jan 13 15:59:59 pc0125 kernel: adapter has MAC addr = 00:d0:5c:02:55:23
> Jan 13 15:59:59 pc0125 kernel: DVB: registering frontend 0 (VLSI VES1820 DVB-C)...
...
> Jan 13 16:00:00 pc0125 kernel: EIP is at dvb_demux_poll+0x3d/0x80 [dvb_core]
> Jan 13 16:00:00 pc0125 kernel: eax: e0a84064 ebx: e0a84000 ecx: 00000000 edx: ffffffea
> Jan 13 16:00:00 pc0125 kernel: esi: 00000000 edi: d097a060 ebp: 0000000a esp: cf81bed8
> Jan 13 16:00:00 pc0125 kernel: ds: 007b es: 007b ss: 0068
> Jan 13 16:00:00 pc0125 kernel: Process upilio (pid: 4513, threadinfo=cf81a000 task=d2383a60)
> Jan 13 16:00:00 pc0125 kernel: Stack: c03c1720 c029e1e9 d4d61a60 d097a060 00000400 0000000a c01633af d097a060
> Jan 13 16:00:00 pc0125 kernel: 00000000 00000000 00000000 00003c20 00000000 00000000 00000020 00000145
> Jan 13 16:00:00 pc0125 kernel: 00003c20 cf81a000 c8c6b30c c8c6b308 c8c6b304 c8c6b314 c8c6b310 c8c6b30c
> Jan 13 16:00:00 pc0125 kernel: Call Trace:
> Jan 13 16:00:00 pc0125 kernel: [sock_poll+41/64] sock_poll+0x29/0x40
> Jan 13 16:00:00 pc0125 kernel: [do_select+607/720] do_select+0x25f/0x2d0
> Jan 13 16:00:00 pc0125 kernel: [__pollwait+0/208] __pollwait+0x0/0xd0
> Jan 13 16:00:00 pc0125 kernel: [sys_select+731/1264] sys_select+0x2db/0x4f0
> Jan 13 16:00:00 pc0125 kernel: [syscall_call+7/11] syscall_call+0x7/0xb
> Jan 13 16:00:00 pc0125 kernel: Code: 24 1c 89 74 24 10 31 f6 89 5c 24 0c 8b 5f 7c 85 db 74 40 85 c9 8d 43 64 74 11 85 c0 74 0d 89 4c 24 08 89 44 24 04 89 3c 24 ff 11 <8b> 43 4c 31 d2 83 e8 03 83 f8 02 77 1b 8b 43 6c 85 c0 b8 4b 00
If I interpreted the disassembly correct if trips when it wants to
access dmxdevfilter->state in dvb_demux_poll(), while the
poll_wait(file, &dmxdevfilter->buffer.queue, wait);
worked. ebx: e0a84000 would be dmxdevfilter, but I don't know if
0xe0a84000 is valid, i.e. in the range of addresses returned by vmalloc().
Anyway, dvb_dmxdev_init() does dvb_register_device() only after
the dmxdevfilters have successfully been allocated and
initialized, i.e. you can't open() an uninitialized device.
I have no explanation for the Oops.
(I wonder where the sock_poll in the call trace comes from; if
you compiled your kernel without frame pointer that could explain it.)
Johannes
Home |
Main Index |
Thread Index