Skip to content
  • Jan-Simon Möller's avatar
    crypto: fcrypt - Fix bitoperation for compilation with clang · 06e710bd
    Jan-Simon Möller authored
    v2: Fix bug in statement as pointed out by Herbert Xu. Kudos to pipacs.
    
    Author:  PaX Team <pageexec at freemail.hu>
    ML-Post: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20120507/142707.html
    URL:     http://llvm.linuxfoundation.org
    
    
    
    Merge:   Jan-Simon Möller <dl9pf at gmx.de>
    
    Description:
    
    Fix for warning:
    linux/crypto/fcrypt.c:143:47: warning: signed shift result (0x598000000) requires 36 bits to
          represent, but 'int' only has 32 bits [-Wshift-overflow]
            Z(0xef), Z(0x70), Z(0xcf), Z(0xc2), Z(0x2a), Z(0xb3), Z(0x61), Z(0xad),
                                                         ^~~~~~~
    linux/crypto/fcrypt.c:113:29: note: expanded from macro 'Z'
                                ^  ~~
    linux/include/uapi/linux/byteorder/little_endian.h:38:53: note: expanded from macro
          '__cpu_to_be32'
                                                        ^
    linux/include/uapi/linux/swab.h:116:21: note: expanded from macro '__swab32'
            ___constant_swab32(x) :                 \
                               ^
    linux/include/uapi/linux/swab.h:18:12: note: expanded from macro '___constant_swab32'
            (((__u32)(x) & (__u32)0x0000ff00UL) <<  8) |            \
                      ^
    
    Solution - make sure we don't exceed the 32 bit range.
     #define Z(x) cpu_to_be32(((x & 0x1f) << 27) | (x >> 5))
    
    Signed-off-by: default avatarJan-Simon Möller <dl9pf@gmx.de>
    CC: pageexec@freemail.hu
    CC: llvmlinux@lists.linuxfoundation.org
    CC: behanw@converseincode.com
    CC: herbert@gondor.apana.org.au
    CC: davem@davemloft.net
    CC: linux-crypto@vger.kernel.org
    CC: linux-kernel@vger.kernel.org
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    06e710bd