• Arnd Bergmann's avatar
    lib/checksum.c: fix endianess bug · 32a9ff9c
    Arnd Bergmann authored
    The new generic checksum code has a small dependency on endianess and
    worked only on big-endian systems. I could not find a nice efficient
    way to express this, so I added an #ifdef. Using
    'result += le16_to_cpu(*buff);' would have worked as well, but
    would be slightly less efficient on big-endian systems and IMHO
    would not be clearer.
    
    Also fix a bug that prevents this from working on 64-bit machines.
    If you have a 64-bit CPU and want to use the generic checksum
    code, you should probably do some more optimizations anyway, but
    at least the code should not break.
    Reported-by: default avatarMike Frysinger <vapier@gentoo.org>
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    32a9ff9c
checksum.c 4.86 KB