return __lz4_compress_crypto(src, slen, dst, dlen, ctx->lz4_comp_mem);
#include <linux/module.h>
#include <linux/crypto.h>
#include <linux/vmalloc.h>
#include <crypto/internal/scompress.h>
static void *lz4_alloc_ctx(struct crypto_scomp *tfm)
ctx = vmalloc(LZ4_MEM_COMPRESS);
static int lz4_init(struct crypto_tfm *tfm)
struct lz4_ctx *ctx = crypto_tfm_ctx(tfm);
ctx->lz4_comp_mem = lz4_alloc_ctx(NULL);
if (IS_ERR(ctx->lz4_comp_mem))
static void lz4_free_ctx(struct crypto_scomp *tfm, void *ctx)
static void lz4_exit(struct crypto_tfm *tfm)
struct lz4_ctx *ctx = crypto_tfm_ctx(tfm);
lz4_free_ctx(NULL, ctx->lz4_comp_mem);
static int __lz4_compress_crypto(const u8 *src, unsigned int slen,
u8 *dst, unsigned int *dlen, void *ctx)
int out_len = LZ4_compress_default(src, dst,