crypto: user - made crypto_user_stat optional
authorCorentin Labbe <clabbe@baylibre.com>
Thu, 29 Nov 2018 14:42:16 +0000 (14:42 +0000)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 7 Dec 2018 06:15:00 +0000 (14:15 +0800)
Even if CRYPTO_STATS is set to n, some part of CRYPTO_STATS are
compiled.
This patch made all part of crypto_user_stat uncompiled in that case.

Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/Makefile
crypto/algapi.c
include/crypto/internal/cryptouser.h
include/linux/crypto.h

index 5e789dc2d4fd76390964dcd02c4d23f8ca97942a..799ed5e946069ee090ddc0db007f402874ef10f0 100644 (file)
@@ -54,7 +54,8 @@ cryptomgr-y := algboss.o testmgr.o
 
 obj-$(CONFIG_CRYPTO_MANAGER2) += cryptomgr.o
 obj-$(CONFIG_CRYPTO_USER) += crypto_user.o
-crypto_user-y := crypto_user_base.o crypto_user_stat.o
+crypto_user-y := crypto_user_base.o
+crypto_user-$(CONFIG_CRYPTO_STATS) += crypto_user_stat.o
 obj-$(CONFIG_CRYPTO_CMAC) += cmac.o
 obj-$(CONFIG_CRYPTO_HMAC) += hmac.o
 obj-$(CONFIG_CRYPTO_VMAC) += vmac.o
index 2545c5f89c4ca873572b5be8bdc7d4fa5c9525dd..f5396c88e8cd176c70b09027442bc097d59ca530 100644 (file)
@@ -258,6 +258,7 @@ static struct crypto_larval *__crypto_register_alg(struct crypto_alg *alg)
        list_add(&alg->cra_list, &crypto_alg_list);
        list_add(&larval->alg.cra_list, &crypto_alg_list);
 
+#ifdef CONFIG_CRYPTO_STATS
        atomic_set(&alg->encrypt_cnt, 0);
        atomic_set(&alg->decrypt_cnt, 0);
        atomic64_set(&alg->encrypt_tlen, 0);
@@ -265,6 +266,7 @@ static struct crypto_larval *__crypto_register_alg(struct crypto_alg *alg)
        atomic_set(&alg->verify_cnt, 0);
        atomic_set(&alg->cipher_err_cnt, 0);
        atomic_set(&alg->sign_cnt, 0);
+#endif
 
 out:
        return larval;
index 8db299c255666c937e843e51bfad9dedc5d579a3..3492ab42eefba230cfcbf408669acd16a51734e3 100644 (file)
@@ -3,6 +3,23 @@
 
 struct crypto_alg *crypto_alg_match(struct crypto_user_alg *p, int exact);
 
+#ifdef CONFIG_CRYPTO_STATS
 int crypto_dump_reportstat(struct sk_buff *skb, struct netlink_callback *cb);
 int crypto_reportstat(struct sk_buff *in_skb, struct nlmsghdr *in_nlh, struct nlattr **attrs);
 int crypto_dump_reportstat_done(struct netlink_callback *cb);
+#else
+static int crypto_dump_reportstat(struct sk_buff *skb, struct netlink_callback *cb)
+{
+       return -ENOTSUPP;
+}
+
+static int crypto_reportstat(struct sk_buff *in_skb, struct nlmsghdr *in_nlh, struct nlattr **attrs)
+{
+       return -ENOTSUPP;
+}
+
+static int crypto_dump_reportstat_done(struct netlink_callback *cb)
+{
+       return -ENOTSUPP;
+}
+#endif
index 3634ad6fe2021e81d6743b6056c95cb86a0925ef..3e05053b8d57eb59df4e89b5c75f325b05081a80 100644 (file)
@@ -515,6 +515,7 @@ struct crypto_alg {
        
        struct module *cra_module;
 
+#ifdef CONFIG_CRYPTO_STATS
        union {
                atomic_t encrypt_cnt;
                atomic_t compress_cnt;
@@ -552,6 +553,7 @@ struct crypto_alg {
                atomic_t compute_shared_secret_cnt;
        };
        atomic_t sign_cnt;
+#endif /* CONFIG_CRYPTO_STATS */
 
 } CRYPTO_MINALIGN_ATTR;