[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