tree 79a5de6a15dec6283cc58f3aeade4ea7fd435743
parent 442a4fffffa26fc3080350b4d50172f7589c3ac2
author David Sterba <dsterba@suse.cz> 1299223732 +0800
committer Herbert Xu <herbert@gondor.apana.org.au> 1299223732 +0800

crypto: tcrypt - do not attempt to write to readonly variable

Commit da7f033ddc9fdeb (”crypto: cryptomgr - Add test infrastructure”) added a
const to variable which is later used as target buffer of memcpy.

crypto/tcrypt.c:217:12: warning: passing 'const char (*)[128]' to parameter of type 'void *' discards qualifiers
                                memset(&iv, 0xff, iv_len);


crypto/tcrypt.c:test_cipher_speed()

-       unsigned char *key, iv[128];
+       const char *key, iv[128];
...
        memset(&iv, 0xff, iv_len);

Signed-off-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
