[linux-dvb] [Patch] Error in dvb_net.c on 64bit platforms

Holger Kiehl Holger.Kiehl at dwd.de
Mon Oct 31 21:36:05 CET 2005


On Mon, 31 Oct 2005, Ralph Metzler wrote:

> Holger Kiehl writes:
> > On Mon, 31 Oct 2005, Holger Kiehl wrote:
> >
> > > Hello
> > >
> > > Removing several dvb net interfaces as follows:
> > >
> > >       /sbin/ifconfig dvb0_4 down
> > >       /sbin/ifconfig dvb0_3 down
> > >       /sbin/ifconfig dvb0_2 down
> > >       /sbin/ifconfig dvb0_1 down
> > >       /sbin/ifconfig dvb0_0 down
> > >
> > > Always produces an oops on a 64 bit system. On a 32 bit system this is no
> > > problem. Applying the attached patch makes it work on 64 bit systems.
> > >
> > After booting the system I still get the oops:
> >
> > Oct 31 14:51:43 sojus kernel: dvb_demux_feed_del: feed not in list (type=1
> > state=0 pid=ffff)
> > Oct 31 14:51:43 sojus kernel: Unable to handle kernel paging request at
> > 00000000000010f8 RIP:
> > Oct 31 14:51:43 sojus kernel: <ffffffff8028dde0>{dvb_net_filter_sec_set+48}
> > Oct 31 14:51:43 sojus kernel: PGD cce6a067 PUD 0
> > Oct 31 14:51:43 sojus kernel: Oops: 0000 [1] SMP
> > Oct 31 14:51:43 sojus kernel: CPU 1
>
>
> There are some race conditions in the networking code which only
> show up on SMP.
> Please try the file below. It adds a mutex around the filter handling
> code. I did not test this myself (lacking an SMP system for testing).
> I did this blindly based on another bug report but did not hear back
> from that person if this suffices to remove the race. So, if you or
> anybody else with SMP can test it that would be great.
>
Yes, this fixes the oops. I have made a lot of tests and was unable
to reproduce the oops with your dvb_net.c.

Thanks for the quick responce and fix! Hope this will soon go into the
kernel. This also fixes the issue that one could no longer reboot or
poweroff the system and I think there where some reports on this too.

> The could of course be something else showing up onl on 64 bit.
> Does this ooops also happen on 32 bit SMP?
>
Just recently I have setup and tested a 32 bit system with SMP kernel
and there where no such issues, but it had the Nova-S card. The 64 bit
system I am now testing has the skystar card. Tomorrow I will try
and see if I can get another system with 32 bit and the skystar.

Again, thanks for the very quick help!

Holger




More information about the linux-dvb mailing list