Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
[sfrench/cifs-2.6.git] / crypto / lz4hc.c
index 75ffc4a3f786c84f867670147e73427c15a20525..03a34a8109c0845440cacd5d21d61daa093bff51 100644 (file)
@@ -65,15 +65,13 @@ static void lz4hc_exit(struct crypto_tfm *tfm)
 static int __lz4hc_compress_crypto(const u8 *src, unsigned int slen,
                                   u8 *dst, unsigned int *dlen, void *ctx)
 {
-       size_t tmp_len = *dlen;
-       int err;
+       int out_len = LZ4_compress_HC(src, dst, slen,
+               *dlen, LZ4HC_DEFAULT_CLEVEL, ctx);
 
-       err = lz4hc_compress(src, slen, dst, &tmp_len, ctx);
-
-       if (err < 0)
+       if (!out_len)
                return -EINVAL;
 
-       *dlen = tmp_len;
+       *dlen = out_len;
        return 0;
 }
 
@@ -97,16 +95,13 @@ static int lz4hc_compress_crypto(struct crypto_tfm *tfm, const u8 *src,
 static int __lz4hc_decompress_crypto(const u8 *src, unsigned int slen,
                                     u8 *dst, unsigned int *dlen, void *ctx)
 {
-       int err;
-       size_t tmp_len = *dlen;
-       size_t __slen = slen;
+       int out_len = LZ4_decompress_safe(src, dst, slen, *dlen);
 
-       err = lz4_decompress_unknownoutputsize(src, __slen, dst, &tmp_len);
-       if (err < 0)
-               return -EINVAL;
+       if (out_len < 0)
+               return out_len;
 
-       *dlen = tmp_len;
-       return err;
+       *dlen = out_len;
+       return 0;
 }
 
 static int lz4hc_sdecompress(struct crypto_scomp *tfm, const u8 *src,