lkml.org 
[lkml]   [2008]   [Feb]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    SubjectCRC32C big endian bugs...
    From

    The CRC32C implementation in the btrfs progs is different from the one
    in the kernel, so obviously nothing can possibly work on big-endian.

    This is getting less and less fun by the minute, I simply wanted to
    test btrfs on Niagara :-/

    Here is a patch to fix that:

    --- vanilla/btrfs-progs-0.12/crc32c.c 2008-02-06 08:37:45.000000000 -0800
    +++ btrfs-progs-0.12/crc32c.c 2008-02-12 01:19:33.000000000 -0800
    @@ -91,13 +91,11 @@ static const u32 crc32c_table[256] = {
    * crc using table.
    */

    -u32 crc32c_le(u32 seed, unsigned char const *data, size_t length)
    +u32 crc32c_le(u32 crc, unsigned char const *data, size_t length)
    {
    - u32 crc = (__force __u32)(cpu_to_le32(seed));
    -
    while (length--)
    crc =
    crc32c_table[(crc ^ *data++) & 0xFFL] ^ (crc >> 8);

    - return le32_to_cpu((__force __le32)crc);
    + return crc;
    }

    \
     
     \ /
      Last update: 2008-02-12 10:25    [W:0.021 / U:0.384 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site