Re: [patch] spinlocks: remove 'volatile'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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]
  Powered by Linux