Subject: Re: [PATCH 3/4] myri10ge - Driver core

From: Roland Dreier <[email-masked]>
Date: Wed, 17 May 2006 15:36:20 -0700

Still some suspicious uses of volatile here.

For example:

> +struct myri10ge_priv {
 ...
> +	volatile u8 __iomem *sram;

as far as I can see this is always used with proper __iomem accessors,
often with casts to strip the volatile anyway.  So why is volatile needed?

I would suggest an audit of all uses of volatile in the driver, since
"volatile" in drivers really should be read "there's probably a bug
here, and if not something very tricky is going on."  If there are any
valid uses of volatile then a comment should explain why, so that
future reviewers don't have to try and puzzle out which of the
two possible translations of volatile is correct.

 - R.