lkml.org 
[lkml]   [2007]   [Dec]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 08/36] libcrc32c: keep intermediate crc state in cpu order
    2.6.22-stable review patch.  If anyone has any objections, please let us
    know.

    ------------------

    From: Herbert Xu <herbert@gondor.apana.org.au>

    It's upstream changeset ef19454bd437b2ba14c9cda1de85debd9f383484.

    [LIB] crc32c: Keep intermediate crc state in cpu order

    crypto/crc32.c:chksum_final() is computing the digest as
    *(__le32 *)out = ~cpu_to_le32(mctx->crc);
    so the low-level crc32c_le routines should just keep
    the crc in cpu order, otherwise it is getting swabbed
    one too many times on big-endian machines.

    Signed-off-by: Benny Halevy <bhalevy@fs1.bhalevy.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    lib/libcrc32c.c | 7 ++-----
    1 file changed, 2 insertions(+), 5 deletions(-)

    --- a/lib/libcrc32c.c
    +++ b/lib/libcrc32c.c
    @@ -33,7 +33,6 @@
    #include <linux/crc32c.h>
    #include <linux/compiler.h>
    #include <linux/module.h>
    -#include <asm/byteorder.h>

    MODULE_AUTHOR("Clay Haapala <chaapala@cisco.com>");
    MODULE_DESCRIPTION("CRC32c (Castagnoli) calculations");
    @@ -161,15 +160,13 @@ static const u32 crc32c_table[256] = {
    */

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

    - return __le32_to_cpu(crc);
    + return crc;
    }

    #endif /* CRC_LE_BITS == 8 */
    --


    \
     
     \ /
      Last update: 2007-12-13 07:43    [W:3.172 / U:0.040 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site