Re: Should io(read|write)(8|16|32)_rep take (const|) volatile u(8|16|32) __iomem *addr?

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

 



Michael K. Edwards wrote:
Doubtless this is on purpose, but it's not clear to me why that should
be true for these particular functions/macros.  I shouldn't have to
cast away the volatile on a pointer to hardware registers in order to
pass it into writel(), should I?  And it shouldn't be forbidden for
the caller to declare the pointer volatile so that the compiler
catches attempts to pass it into non-volatile interfaces, should it?


Therein lies your bug: you should not be annotating your __iomem pointers with volatile.

That's why volatile is found in the implementation and not the prototypes of the accessor functions.

	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