e1000 question

From: Ihar 'Philips' Filipau
Date: Wed Jun 02 2004 - 03:36:37 EST



[ If this is wrong ML, will appreciate pointer to correct one. ]
[ CC: me, please - I'm not sub'd. ]
[ Intel's driver as in 2.6.5 - http://lxr.linux.no/source/drivers/net/e1000/e1000_main.c?v=2.6.5 ]

I'm looking into e1000 driver in irq handling and what I see, puzzles me.

Functions e1000_clean_{t,r}x_irq are very similar: both of them are checking descriptor flag updated by nic.
Host CPU, obviously, to perform this check, will cache descriptor.
If, say e1000_clean_rx_irq() will be called twice in short time range, I expect that it can miss change of the flag, since old flag may still sit in host CPU cache.

Am I missing something here?

--
Johnson's law:
Systems resemble the organizations that create them.
-- ___ ___
Ihar 'Philips' Filipau \ / Sr. Software Developer
Tel: +49 681 959 16 0 \ / GIGA STREAM
Fax: +49 681 959 16 100 \/ Konrad Zuse Strasse 7
Mobile: +49 173 39 462 49 /\ 66115 Saarbruecken
email: ifilipau@xxxxxxxxxxxxxx / \ Germany
www: http://www.giga-stream.de ___/ \___ Switching for success

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature