Linus Torvalds wrote:
On Thu, 6 Jul 2006, Linus Torvalds wrote:
Any other use of "volatile" is almost certainly a bug, or just useless.
Side note: it's also totally possible that a volatiles _hides_ a bug, ie
removing the volatile ends up having bad effects, but that's because the
software itself isn't actually following the rules (or, more commonly, the
rules are broken, and somebody added "volatile" to hide the problem).
That's not just a theoretical notion, btw. We had _tons_ of these kinds of
"volatile"s in the original old networking code. They were _all_ wrong.
Every single one.
I see precisely what you describe in newly submitted network _drivers_,
too. People use volatile to cover up missing barriers; to attempt to
cover up missing flushes (needing readl after a writel); to hide the
fact that the driver sometimes uses writel() and sometimes just does a
direct de-ref into MMIO space.
To my view, seeing "volatile" in code is often a "I was too lazy to
debug the code" or "I was too lazy to make my code portable" situation.
Jeff
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]