crypto: compress - remove crt_u.compress (struct compress_tfm)

crt_u.compress (struct compress_tfm) is pointless because its two
fields, ->cot_compress() and ->cot_decompress(), always point to
crypto_compress() and crypto_decompress().

Remove this pointless indirection, and just make crypto_comp_compress()
and crypto_comp_decompress() be direct calls to what used to be
crypto_compress() and crypto_decompress().

Also remove the unused function crypto_comp_cast().

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
Eric Biggers 2019-12-02 13:42:29 -08:00 committed by Herbert Xu
parent 49763fc6b1
commit c441a909c6
4 changed files with 19 additions and 58 deletions

View File

@ -301,7 +301,7 @@ static int crypto_init_ops(struct crypto_tfm *tfm, u32 type, u32 mask)
return crypto_init_cipher_ops(tfm); return crypto_init_cipher_ops(tfm);
case CRYPTO_ALG_TYPE_COMPRESS: case CRYPTO_ALG_TYPE_COMPRESS:
return crypto_init_compress_ops(tfm); return 0;
default: default:
break; break;

View File

@ -6,34 +6,27 @@
* *
* Copyright (c) 2002 James Morris <jmorris@intercode.com.au> * Copyright (c) 2002 James Morris <jmorris@intercode.com.au>
*/ */
#include <linux/types.h>
#include <linux/crypto.h> #include <linux/crypto.h>
#include <linux/errno.h>
#include <linux/string.h>
#include "internal.h" #include "internal.h"
static int crypto_compress(struct crypto_tfm *tfm, int crypto_comp_compress(struct crypto_comp *comp,
const u8 *src, unsigned int slen, const u8 *src, unsigned int slen,
u8 *dst, unsigned int *dlen) u8 *dst, unsigned int *dlen)
{ {
struct crypto_tfm *tfm = crypto_comp_tfm(comp);
return tfm->__crt_alg->cra_compress.coa_compress(tfm, src, slen, dst, return tfm->__crt_alg->cra_compress.coa_compress(tfm, src, slen, dst,
dlen); dlen);
} }
EXPORT_SYMBOL_GPL(crypto_comp_compress);
static int crypto_decompress(struct crypto_tfm *tfm, int crypto_comp_decompress(struct crypto_comp *comp,
const u8 *src, unsigned int slen, const u8 *src, unsigned int slen,
u8 *dst, unsigned int *dlen) u8 *dst, unsigned int *dlen)
{ {
struct crypto_tfm *tfm = crypto_comp_tfm(comp);
return tfm->__crt_alg->cra_compress.coa_decompress(tfm, src, slen, dst, return tfm->__crt_alg->cra_compress.coa_decompress(tfm, src, slen, dst,
dlen); dlen);
} }
EXPORT_SYMBOL_GPL(crypto_comp_decompress);
int crypto_init_compress_ops(struct crypto_tfm *tfm)
{
struct compress_tfm *ops = &tfm->crt_compress;
ops->cot_compress = crypto_compress;
ops->cot_decompress = crypto_decompress;
return 0;
}

View File

@ -59,7 +59,6 @@ struct crypto_alg *crypto_mod_get(struct crypto_alg *alg);
struct crypto_alg *crypto_alg_mod_lookup(const char *name, u32 type, u32 mask); struct crypto_alg *crypto_alg_mod_lookup(const char *name, u32 type, u32 mask);
int crypto_init_cipher_ops(struct crypto_tfm *tfm); int crypto_init_cipher_ops(struct crypto_tfm *tfm);
int crypto_init_compress_ops(struct crypto_tfm *tfm);
struct crypto_larval *crypto_larval_alloc(const char *name, u32 type, u32 mask); struct crypto_larval *crypto_larval_alloc(const char *name, u32 type, u32 mask);
void crypto_larval_kill(struct crypto_alg *alg); void crypto_larval_kill(struct crypto_alg *alg);

View File

@ -606,17 +606,7 @@ struct cipher_tfm {
void (*cit_decrypt_one)(struct crypto_tfm *tfm, u8 *dst, const u8 *src); void (*cit_decrypt_one)(struct crypto_tfm *tfm, u8 *dst, const u8 *src);
}; };
struct compress_tfm {
int (*cot_compress)(struct crypto_tfm *tfm,
const u8 *src, unsigned int slen,
u8 *dst, unsigned int *dlen);
int (*cot_decompress)(struct crypto_tfm *tfm,
const u8 *src, unsigned int slen,
u8 *dst, unsigned int *dlen);
};
#define crt_cipher crt_u.cipher #define crt_cipher crt_u.cipher
#define crt_compress crt_u.compress
struct crypto_tfm { struct crypto_tfm {
@ -624,7 +614,6 @@ struct crypto_tfm {
union { union {
struct cipher_tfm cipher; struct cipher_tfm cipher;
struct compress_tfm compress;
} crt_u; } crt_u;
void (*exit)(struct crypto_tfm *tfm); void (*exit)(struct crypto_tfm *tfm);
@ -928,13 +917,6 @@ static inline struct crypto_comp *__crypto_comp_cast(struct crypto_tfm *tfm)
return (struct crypto_comp *)tfm; return (struct crypto_comp *)tfm;
} }
static inline struct crypto_comp *crypto_comp_cast(struct crypto_tfm *tfm)
{
BUG_ON((crypto_tfm_alg_type(tfm) ^ CRYPTO_ALG_TYPE_COMPRESS) &
CRYPTO_ALG_TYPE_MASK);
return __crypto_comp_cast(tfm);
}
static inline struct crypto_comp *crypto_alloc_comp(const char *alg_name, static inline struct crypto_comp *crypto_alloc_comp(const char *alg_name,
u32 type, u32 mask) u32 type, u32 mask)
{ {
@ -969,26 +951,13 @@ static inline const char *crypto_comp_name(struct crypto_comp *tfm)
return crypto_tfm_alg_name(crypto_comp_tfm(tfm)); return crypto_tfm_alg_name(crypto_comp_tfm(tfm));
} }
static inline struct compress_tfm *crypto_comp_crt(struct crypto_comp *tfm) int crypto_comp_compress(struct crypto_comp *tfm,
{ const u8 *src, unsigned int slen,
return &crypto_comp_tfm(tfm)->crt_compress; u8 *dst, unsigned int *dlen);
}
static inline int crypto_comp_compress(struct crypto_comp *tfm, int crypto_comp_decompress(struct crypto_comp *tfm,
const u8 *src, unsigned int slen, const u8 *src, unsigned int slen,
u8 *dst, unsigned int *dlen) u8 *dst, unsigned int *dlen);
{
return crypto_comp_crt(tfm)->cot_compress(crypto_comp_tfm(tfm),
src, slen, dst, dlen);
}
static inline int crypto_comp_decompress(struct crypto_comp *tfm,
const u8 *src, unsigned int slen,
u8 *dst, unsigned int *dlen)
{
return crypto_comp_crt(tfm)->cot_decompress(crypto_comp_tfm(tfm),
src, slen, dst, dlen);
}
#endif /* _LINUX_CRYPTO_H */ #endif /* _LINUX_CRYPTO_H */