On Mon, 2014-10-27 at 13:52 +0100, leroy christophe wrote: > Many drivers use in_be16(), in_be32(), out_be16(), out_be32(), etc .... > to access to registrers in IO mapped memory. > > What is the real purpose of those functions, and are they really needed ? > > ioremap() maps the related areas as GUARDED, which means that accesses > can't be speculative. So what is the benefit of using in_beXX() and > out_beXX() over simple memory accesses in the area ?
Speculative accesses aren't the only issue -- there's also hardware reordering (some implementations may not do this on guarded regions, but I don't think it's architecturally guaranteed), and of course you need to make sure the compiler doesn't do anything funny. -Scott _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev