• David Gow's avatar
    um: Use the x86 checksum implementation on 32-bit · ff3f7860
    David Gow authored
    When UML is compiled under 32-bit x86, it uses its own copy of
    checksum_32.S, which is terribly out-of-date and doesn't support
    checksumming unaligned data.
    
    This causes the new "checksum" KUnit test to fail:
    ./tools/testing/kunit/kunit.py run --kconfig_add CONFIG_64BIT=n --cross_compile i686-linux-gnu- checksum
        KTAP version 1
        # Subtest: checksum
        1..3
        # test_csum_fixed_random_inputs: ASSERTION FAILED at lib/checksum_kunit.c:243
        Expected result == expec, but
            result == 33316 (0x8224)
            expec == 33488 (0x82d0)
        not ok 1 test_csum_fixed_random_inputs
        # test_csum_all_carry_inputs: ASSERTION FAILED at lib/checksum_kunit.c:267
        Expected result == expec, but
            result == 65280 (0xff00)
            expec == 0 (0x0)
        not ok 2 test_csum_all_carry_inputs
        # test_csum_no_carry_inputs: ASSERTION FAILED at lib/checksum_kunit.c:306
        Expected result == expec, but
            result == 65531 (0xfffb)
            expec == 0 (0x0)
        not ok 3 test_csum_no_carry_inputs
    
    Sharing the normal implementation in arch/x86/lib both fixes all of
    these issues and means any further fixes only need to be done once.
    
    x86_64 already seems to share the same implementation between UML and
    "normal" x86.
    Signed-off-by: default avatarDavid Gow <davidgow@google.com>
    Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
    ff3f7860
Makefile 1.32 KB