Hi everybody,
I have the assumption that one IRQ lock is missing in stackmgr_task():
In my setup I have two realtime NICs in use with rtnet.
And for this setup, I think the assumption in the function stackmgr_task()
/* we are the only reader => no locking required */
skb = __rtskb_fifo_remove(&rx.fifo);
is not valid, as the interrupt routine of the NIC could write to rx.fifo via
rtnetif_rx() while the stackmgr_task()
is about to read from rx.fifo (eg. triggered by the other NIC's IRQ).
Even with With one NIC it is not save when there many short messages arriving
very fast.
Thus, I think the line above has to be changed to
skb = rtskb_fifo_remove(&rx.fifo);
to be really save!
I actually had a problem with lost packages with two NICs enabled. I hope the
fix above helps to fix the issue.
At least, the first short test looks promising.
Regards
Mathias
--
Mathias Koehrer
[EMAIL PROTECTED]
Viel oder wenig? Schnell oder langsam? Unbegrenzt surfen + telefonieren
ohne Zeit- und Volumenbegrenzung? DAS TOP ANGEBOT JETZT bei Arcor: günstig
und schnell mit DSL - das All-Inclusive-Paket für clevere Doppel-Sparer,
nur 44,85 inkl. DSL- und ISDN-Grundgebühr!
http://www.arcor.de/rd/emf-dsl-2
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
RTnet-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rtnet-users