• Stafford Horne's avatar
    asm-generic/io.h: Fix sparse warnings on big-endian architectures · c1d55d50
    Stafford Horne authored
    On big-endian architectures like OpenRISC, sparse outputs below warnings on
    asm-generic/io.h.  This is due to io statements like:
    
      __raw_writel(cpu_to_le32(value), PCI_IOBASE + addr);
    
    The __raw_writel() function expects native endianness, however
    cpu_to_le32() returns __le32.  On little-endian machines these match up
    and there is no issue.  However, on big-endian we get warnings, for IO
    that is defined as little-endian the mismatch is expected.
    
    The fix I propose is to __force to native endian.
    
    Warnings:
    
    ./include/asm-generic/io.h:166:15: warning: cast to restricted __le16
    ./include/asm-generic/io.h:166:15: warning: cast to restricted __le16
    ./include/asm-generic/io.h:166:15: warning: cast to restricted __le16
    ./include/asm-generic/io.h:166:15: warning: cast to restricted __le16
    ./include/asm-generic/io.h:179:15: warning: cast to restricted __le32
    ./include/asm-generic/io.h:179:15: warning: cast to restricted __le32
    ./include/asm-generic/io.h:179:15: warning: cast to restricted __le32
    ./include/asm-generic/io.h:179:15: warning: cast to restricted __le32
    ./include/asm-generic/io.h:179:15: warning: cast to restricted __le32
    ./include/asm-generic/io.h:179:15: warning: cast to restricted __le32
    ./include/asm-generic/io.h:215:22: warning: incorrect type in argument 1 (different base types)
    ./include/asm-generic/io.h:215:22:    expected unsigned short [usertype] value
    ./include/asm-generic/io.h:215:22:    got restricted __le16 [usertype]
    ./include/asm-generic/io.h:225:22: warning: incorrect type in argument 1 (different base types)
    ./include/asm-generic/io.h:225:22:    expected unsigned int [usertype] value
    ./include/asm-generic/io.h:225:22:    got restricted __le32 [usertype]
    Signed-off-by: default avatarStafford Horne <shorne@gmail.com>
    Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
    c1d55d50
io.h 22.5 KB