crypto: omap-sham - force kernel driver usage for sha algos
authorTero Kristo <t-kristo@ti.com>
Wed, 27 May 2020 12:24:24 +0000 (15:24 +0300)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 4 Jun 2020 12:03:40 +0000 (22:03 +1000)
As the hardware acceleration for the omap-sham algos is not available
from userspace, force kernel driver usage. Without this flag in place,
openssl 1.1 implementation thinks it can accelerate sha algorithms on
omap devices directly from userspace.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/omap-sham.c

index 063ad5d03f333cfa999455b841899c4170f49d6a..34ecace143607175d0aa46a11ca0a4c3be8d0954 100644 (file)
@@ -1571,7 +1571,8 @@ static struct ahash_alg algs_sha224_sha256[] = {
                .cra_name               = "sha224",
                .cra_driver_name        = "omap-sha224",
                .cra_priority           = 400,
-               .cra_flags              = CRYPTO_ALG_ASYNC |
+               .cra_flags              = CRYPTO_ALG_KERN_DRIVER_ONLY |
+                                               CRYPTO_ALG_ASYNC |
                                                CRYPTO_ALG_NEED_FALLBACK,
                .cra_blocksize          = SHA224_BLOCK_SIZE,
                .cra_ctxsize            = sizeof(struct omap_sham_ctx),
@@ -1592,7 +1593,8 @@ static struct ahash_alg algs_sha224_sha256[] = {
                .cra_name               = "sha256",
                .cra_driver_name        = "omap-sha256",
                .cra_priority           = 400,
-               .cra_flags              = CRYPTO_ALG_ASYNC |
+               .cra_flags              = CRYPTO_ALG_KERN_DRIVER_ONLY |
+                                               CRYPTO_ALG_ASYNC |
                                                CRYPTO_ALG_NEED_FALLBACK,
                .cra_blocksize          = SHA256_BLOCK_SIZE,
                .cra_ctxsize            = sizeof(struct omap_sham_ctx),
@@ -1614,7 +1616,8 @@ static struct ahash_alg algs_sha224_sha256[] = {
                .cra_name               = "hmac(sha224)",
                .cra_driver_name        = "omap-hmac-sha224",
                .cra_priority           = 400,
-               .cra_flags              = CRYPTO_ALG_ASYNC |
+               .cra_flags              = CRYPTO_ALG_KERN_DRIVER_ONLY |
+                                               CRYPTO_ALG_ASYNC |
                                                CRYPTO_ALG_NEED_FALLBACK,
                .cra_blocksize          = SHA224_BLOCK_SIZE,
                .cra_ctxsize            = sizeof(struct omap_sham_ctx) +
@@ -1637,7 +1640,8 @@ static struct ahash_alg algs_sha224_sha256[] = {
                .cra_name               = "hmac(sha256)",
                .cra_driver_name        = "omap-hmac-sha256",
                .cra_priority           = 400,
-               .cra_flags              = CRYPTO_ALG_ASYNC |
+               .cra_flags              = CRYPTO_ALG_KERN_DRIVER_ONLY |
+                                               CRYPTO_ALG_ASYNC |
                                                CRYPTO_ALG_NEED_FALLBACK,
                .cra_blocksize          = SHA256_BLOCK_SIZE,
                .cra_ctxsize            = sizeof(struct omap_sham_ctx) +
@@ -1662,7 +1666,8 @@ static struct ahash_alg algs_sha384_sha512[] = {
                .cra_name               = "sha384",
                .cra_driver_name        = "omap-sha384",
                .cra_priority           = 400,
-               .cra_flags              = CRYPTO_ALG_ASYNC |
+               .cra_flags              = CRYPTO_ALG_KERN_DRIVER_ONLY |
+                                               CRYPTO_ALG_ASYNC |
                                                CRYPTO_ALG_NEED_FALLBACK,
                .cra_blocksize          = SHA384_BLOCK_SIZE,
                .cra_ctxsize            = sizeof(struct omap_sham_ctx),
@@ -1683,7 +1688,8 @@ static struct ahash_alg algs_sha384_sha512[] = {
                .cra_name               = "sha512",
                .cra_driver_name        = "omap-sha512",
                .cra_priority           = 400,
-               .cra_flags              = CRYPTO_ALG_ASYNC |
+               .cra_flags              = CRYPTO_ALG_KERN_DRIVER_ONLY |
+                                               CRYPTO_ALG_ASYNC |
                                                CRYPTO_ALG_NEED_FALLBACK,
                .cra_blocksize          = SHA512_BLOCK_SIZE,
                .cra_ctxsize            = sizeof(struct omap_sham_ctx),
@@ -1705,7 +1711,8 @@ static struct ahash_alg algs_sha384_sha512[] = {
                .cra_name               = "hmac(sha384)",
                .cra_driver_name        = "omap-hmac-sha384",
                .cra_priority           = 400,
-               .cra_flags              = CRYPTO_ALG_ASYNC |
+               .cra_flags              = CRYPTO_ALG_KERN_DRIVER_ONLY |
+                                               CRYPTO_ALG_ASYNC |
                                                CRYPTO_ALG_NEED_FALLBACK,
                .cra_blocksize          = SHA384_BLOCK_SIZE,
                .cra_ctxsize            = sizeof(struct omap_sham_ctx) +
@@ -1728,7 +1735,8 @@ static struct ahash_alg algs_sha384_sha512[] = {
                .cra_name               = "hmac(sha512)",
                .cra_driver_name        = "omap-hmac-sha512",
                .cra_priority           = 400,
-               .cra_flags              = CRYPTO_ALG_ASYNC |
+               .cra_flags              = CRYPTO_ALG_KERN_DRIVER_ONLY |
+                                               CRYPTO_ALG_ASYNC |
                                                CRYPTO_ALG_NEED_FALLBACK,
                .cra_blocksize          = SHA512_BLOCK_SIZE,
                .cra_ctxsize            = sizeof(struct omap_sham_ctx) +