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
RTnet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rtnet-users

Reply via email to