On Wed, Jul 15, 2009 at 12:36:46PM +0200, Steffen Klassert wrote:
>
> It's 32-bit.
> One of my test systems had padlock enabled by chance.

This should fix it.

commit faae890883624e14a328863eafabf54a36698774
Author: Herbert Xu <[email protected]>
Date:   Wed Jul 15 18:37:48 2009 +0800

    crypto: padlock - Fix compile error on i386
    
    The previous change to allow hashing from states other than the
    initial broke compilation on i386 because the inline assembly
    tried to squeeze a u64 into a 32-bit register.  As we've already
    checked for 32-bit overflows we can simply truncate it to u32,
    or unsigned long so that we don't truncate at all on x86-64.
    
    Signed-off-by: Herbert Xu <[email protected]>

diff --git a/drivers/crypto/padlock-sha.c b/drivers/crypto/padlock-sha.c
index fb6e6c3..a936ba4 100644
--- a/drivers/crypto/padlock-sha.c
+++ b/drivers/crypto/padlock-sha.c
@@ -103,7 +103,8 @@ static int padlock_sha1_finup(struct shash_desc *desc, 
const u8 *in,
        ts_state = irq_ts_save();
        asm volatile (".byte 0xf3,0x0f,0xa6,0xc8" /* rep xsha1 */
                      : \
-                     : "c"(state.count + count), "a"(state.count), \
+                     : "c"((unsigned long)state.count + count), \
+                       "a"((unsigned long)state.count), \
                        "S"(in), "D"(result));
        irq_ts_restore(ts_state);
 
@@ -165,7 +166,8 @@ static int padlock_sha256_finup(struct shash_desc *desc, 
const u8 *in,
        ts_state = irq_ts_save();
        asm volatile (".byte 0xf3,0x0f,0xa6,0xd0" /* rep xsha256 */
                      : \
-                     : "c"(state.count + count), "a"(state.count), \
+                     : "c"((unsigned long)state.count + count), \
+                       "a"((unsigned long)state.count), \
                        "S"(in), "D"(result));
        irq_ts_restore(ts_state);
 
Thanks,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
--
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to