• Russell King's avatar
    ARM: io: fix ioremap_wt() implementation · 1e2c727f
    Russell King authored
    ioremap_wt() was added by aliasing it to ioremap_nocache(), which is a
    device mapping.  Device mappings do not allow unaligned accesses, but
    it appears that GCC is able to inline its own memcpy() implementation
    which may use such accesses.  The only user of this is pmem, which
    uses memcpy() on the region.
    
    Therefore, this is unsafe.  We must implement ioremap_wt() correctly
    for ARM, or not at all.
    
    This patch adds a more correct implementation by re-using ioremap_wc()
    to provide a normal-memory non-cacheable mapping.
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    1e2c727f
io.h 15.3 KB