• Horia Geantă's avatar
    asm-generic/io.h: allow barriers in io{read,write}{16,32}be · 7a1aedba
    Horia Geantă authored
    While reviewing the addition of io{read,write}64be accessors, Arnd
    
    -finds a potential problem:
    "If an architecture overrides readq/writeq to have barriers but does
    not override ioread64be/iowrite64be, this will lack the barriers and
    behave differently from the little-endian version. I think the only
    affected architecture is ARC, since ARM and ARM64 both override the
    big-endian accessors to have the correct barriers, and all others
    don't use barriers at all."
    
    -suggests a fix for the same problem in existing code (16/32-bit
    accessors); the fix leads "to a double-swap on architectures that
    don't override the io{read,write}{16,32}be accessors, but it will
    work correctly on all architectures without them having to override
    these accessors."
    Suggested-by: default avatarArnd Bergmann <arnd@arndb.de>
    Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarHoria Geantă <horia.geanta@nxp.com>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    7a1aedba
io.h 18.3 KB