Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linux-dvb] Re: dvb-bt8xx and net device
Hi,
First of all, I always set the MAC address manually because after
ifconfig -a dvb0_0 the mac address was always inited to 0.. Then the
driver actually never oops. It simply "fucks" up the whole system and
I don't know why..
I made a similar approach as you. I tuned and brought the net device
up with dvbtune
# dvbtune -f 10773250 -p H -s 22000 -n 251 -i
I get a long list of service available at the Astranet frequence and I
try to use the T-DSL proxy service (pid 251). Finally the net device
is successfully setup.
# ifconfig dvb0_0 10.0.1.1
and the net device is running.. The mac is also set correctly as I
hardcoded it in the add_if net code.
# iptraf -d dvb0_0
gets me lots of UDP packages but before I can actually start the proxy
service, the system hangs and nothing can't be done anymore. If you're
lucky you get data lost because the hd buffers weren't flushed..
So after that I am pretty sure that this nasty bug isn't related with
setting the mac address. As I said before, I always set the mac before
using the net device and ifconfig -a dvb0_0 showed me that everything
went fine. It must be in some way related to the hardware as you're
nova s seems to work and Stefan reported the same problem as me with a
pinnacle card.
As you're familiar with the dvb interface, is there a possibilty that
a package buffer is flooded with data that actually makes the kernel
go nuts?
well, I fear that the actual bug is in the bt8xx driver, somewhere in
DMA setup and interrupt handling.
Is your system responding on SysRq-Keys after the lockup? Might it hang
in a busy-loop somewhere, maybe in interrupt context? Try e.g.
alt-sysrq-t or alt-sysrq-p to get an idea where the kernel is actually
hanging. Remove the SA_INTERRUPT flag in request_irq() to enable other
interrupts while processing bt878_irq().
In any case you might want to set up a serial console on a second box in
order to save the logs.
Things seem to become stranger and stranger while I try the dvb drivers
out.. Because I had added some printk's in the net code, I thought it
would be a good idea to get a new, vanilla dvb tree. I did that but when
I tried the latest drivers out, I couldn't even bring the netdevice up.
I got that typical seg fault.
Steffen, could you please try the latest dvb-kernel out and check
whether you get the same problem as me?
cpu: 0, clocks: 1993363, slice: 996681
ac97_codec: AC97 Audio codec, id: ??v9(SigmaTel STAC9721/23)
Unable to handle kernel paging request at virtual address 2d343369
c021ddac
*pde = 00000000
Oops: 0000
CPU: 0
EIP: 0010:[<c021ddac>] Tainted: P
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010212
eax: 0000000a ebx: 00000004 ecx: 00000001 edx: 00000008
esi: 2d343369 edi: ca98f05c ebp: 00000008 esp: cab5bdd4
ds: 0018 es: 0018 ss: 0018
Process dvbtune (pid: 374, stackpage=cab5b000)
Stack: cbde4300 00000000 c02f1c2d c91f2288 c021e235 cbde4300 0000000a
00000004
2d343369 cbde4300 c91f2288 00000005 00000000 c02f1c28 00000202
c02f1c60
00000f14 ca98f000 ca98f000 00001000 c021e41a cbde4300 c91f2288
00000010
Call Trace: [<c021e235>] [<c021e41a>] [<c021e892>] [<c0121e5a>]
[<c0219ccd>]
[<c01b7bca>] [<cca271c2>] [<cca24611>] [<cca246cc>] [<cca2019b>]
[<c0140e08>]
[<c01370c6>] [<cca2665c>] [<c0137398>] [<c0135ff9>] [<c0135f0e>]
[<cca2474b>]
[<cca24680>] [<c0144967>] [<c0106f17>]
Code: f3 a5 f6 c3 02 74 02 66 a5 f6 c3 01 74 01 a4 5b 5e 5f 5d c3
>>EIP; c021ddac <__rta_fill+70/84> <=====
>>edi; ca98f05c <_end+a61d7d8/c4dc7dc>
>>esp; cab5bdd4 <_end+a7ea550/c4dc7dc>
Trace; c021e235 <rtnetlink_fill_ifinfo+31d/3b8>
Trace; c021e41a <rtmsg_ifinfo+32/7c>
Trace; c021e892 <rtnetlink_event+32/38>
Trace; c0121e5a <notifier_call_chain+1e/38>
Trace; c0219ccd <register_netdevice+151/168>
Trace; c01b7bca <register_netdev+5e/70>
Trace; cca271c2 <[dvb-core]__kstrtab_dvb_ringbuffer_avail+d/1d>
Trace; cca24611 <[dvb-core]dvb_net_add_if+139/150>
Trace; cca246cc <[dvb-core]dvb_net_do_ioctl+4c/ac>
Trace; cca2019b <[dvb-core]dvb_usercopy+b3/129>
Trace; c0140e08 <link_path_walk+888/99c>
Trace; c01370c6 <get_chrfops+5a/15c>
Trace; cca2665c <[dvb-core]dvb_device_open+68/dc>
Trace; c0137398 <chrdev_open+64/98>
Trace; c0135ff9 <dentry_open+e1/188>
Trace; c0135f0e <filp_open+52/5c>
Trace; cca2474b <[dvb-core]dvb_net_ioctl+1f/24>
Trace; cca24680 <[dvb-core]dvb_net_do_ioctl+0/ac>
Trace; c0144967 <sys_ioctl+1bb/1f6>
Trace; c0106f17 <system_call+33/38>
Code; c021ddac <__rta_fill+70/84>
00000000 <_EIP>:
Code; c021ddac <__rta_fill+70/84> <=====
0: f3 a5 repz movsl %ds:(%esi),%es:(%edi) <=====
Code; c021ddae <__rta_fill+72/84>
2: f6 c3 02 test $0x2,%bl
Code; c021ddb1 <__rta_fill+75/84>
5: 74 02 je 9 <_EIP+0x9>
Code; c021ddb3 <__rta_fill+77/84>
7: 66 a5 movsw %ds:(%esi),%es:(%edi)
Code; c021ddb5 <__rta_fill+79/84>
9: f6 c3 01 test $0x1,%bl
Code; c021ddb8 <__rta_fill+7c/84>
c: 74 01 je f <_EIP+0xf>
Code; c021ddba <__rta_fill+7e/84>
e: a4 movsb %ds:(%esi),%es:(%edi)
Code; c021ddbb <__rta_fill+7f/84>
f: 5b pop %ebx
Code; c021ddbc <__rta_fill+80/84>
10: 5e pop %esi
Code; c021ddbd <__rta_fill+81/84>
11: 5f pop %edi
Code; c021ddbe <__rta_fill+82/84>
12: 5d pop %ebp
Code; c021ddbf <__rta_fill+83/84>
13: c3 ret
In the case that I get the drivers partly working again, I will put some
printk in all dvb net functions so I can trace the last called
functions. Unfortunately I could never see any meaningful log output
after a system "hang".
Thanks,
-André.
--
http://www.steinsoft.net
cout << "Happy Coding!" << endl;
--
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.
Home |
Main Index |
Thread Index