[PATCH] ARM: io: avoid writeback addressing modes for __raw_ accessors

Will Deacon will.deacon at arm.com
Tue Aug 21 05:02:13 EDT 2012


On Mon, Aug 20, 2012 at 07:45:20PM +0100, Nicolas Pitre wrote:
> On Mon, 20 Aug 2012, Will Deacon wrote:
> > On Mon, Aug 20, 2012 at 07:04:01PM +0100, Nicolas Pitre wrote:
> > > Nah... the const is wrong.  The way you wrote it means that addr may 
> > > change but the pointed data is constant.  This is obviously wrong since 
> > > we expect the pointed location to change even from a read.
> > 
> > That's the prototype for the read accessors though -- a bunch of other
> > architectures define them that way (including asm-generic), so I wonder what
> > the reasoning behind that was?
> 
> I'm still asserting that they're wrong.

I did a bit of digging around and `const volatile void *' is apparently used
because a function with such a parameter type can be passed any old pointer
without warnings. Torvalds says something about them here:

  http://readlist.com/lists/vger.kernel.org/linux-kernel/14/72300.html

Personally, I too think that the const is misleading and who on Earth would
be passing in pointers to const for an I/O region? However, it's an argument
I'd rather avoid so, for the sake of consistency, I'll cast away the const in
the asm block.

Cheers,

Will



More information about the linux-arm-kernel mailing list