2019-06-12 14:35:34

by David Hildenbrand

[permalink] [raw]
Subject: [PATCH v2 0/4] s390/crypto: Use -ENODEV instead of -EOPNOTSUPP

s390x crypto is one of the rare modules that returns -EOPNOTSUPP instead of
-ENODEV in case HW support is not available.

Convert to -ENODEV, so e.g., systemd's systemd-modules-load.service
ignores this error properly.

v1 -> v2:
- Include
-- "s390/crypto: ghash: Use -ENODEV instead of -EOPNOTSUPP"
-- "s390/crypto: prng: Use -ENODEV instead of -EOPNOTSUPP"
-- "s390/crypto: sha: Use -ENODEV instead of -EOPNOTSUPP"

Cc: Herbert Xu <[email protected]>
Cc: "David S. Miller" <[email protected]>
Cc: Heiko Carstens <[email protected]>
Cc: Vasily Gorbik <[email protected]>
Cc: Christian Borntraeger <[email protected]>
Cc: Harald Freudenberger <[email protected]>
Cc: Cornelia Huck <[email protected]>

David Hildenbrand (4):
s390/pkey: Use -ENODEV instead of -EOPNOTSUPP
s390/crypto: ghash: Use -ENODEV instead of -EOPNOTSUPP
s390/crypto: prng: Use -ENODEV instead of -EOPNOTSUPP
s390/crypto: sha: Use -ENODEV instead of -EOPNOTSUPP

arch/s390/crypto/ghash_s390.c | 2 +-
arch/s390/crypto/prng.c | 4 ++--
arch/s390/crypto/sha1_s390.c | 2 +-
arch/s390/crypto/sha256_s390.c | 2 +-
arch/s390/crypto/sha512_s390.c | 2 +-
drivers/s390/crypto/pkey_api.c | 6 +++---
6 files changed, 9 insertions(+), 9 deletions(-)

--
2.21.0


2019-06-12 14:35:53

by David Hildenbrand

[permalink] [raw]
Subject: [PATCH v2 2/4] s390/crypto: ghash: Use -ENODEV instead of -EOPNOTSUPP

Let's use the error value that is typically used if HW support is not
available when trying to load a module - this is also what systemd's
systemd-modules-load.service expects.

Signed-off-by: David Hildenbrand <[email protected]>
---
arch/s390/crypto/ghash_s390.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/s390/crypto/ghash_s390.c b/arch/s390/crypto/ghash_s390.c
index 86aed30fad3a..eeeb6a7737a4 100644
--- a/arch/s390/crypto/ghash_s390.c
+++ b/arch/s390/crypto/ghash_s390.c
@@ -137,7 +137,7 @@ static struct shash_alg ghash_alg = {
static int __init ghash_mod_init(void)
{
if (!cpacf_query_func(CPACF_KIMD, CPACF_KIMD_GHASH))
- return -EOPNOTSUPP;
+ return -ENODEV;

return crypto_register_shash(&ghash_alg);
}
--
2.21.0

2019-06-12 14:36:19

by David Hildenbrand

[permalink] [raw]
Subject: [PATCH v2 3/4] s390/crypto: prng: Use -ENODEV instead of -EOPNOTSUPP

Let's use the error value that is typically used if HW support is not
available when trying to load a module - this is also what systemd's
systemd-modules-load.service expects.

Signed-off-by: David Hildenbrand <[email protected]>
---
arch/s390/crypto/prng.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/s390/crypto/prng.c b/arch/s390/crypto/prng.c
index 12cca467af7d..d977643fa627 100644
--- a/arch/s390/crypto/prng.c
+++ b/arch/s390/crypto/prng.c
@@ -824,7 +824,7 @@ static int __init prng_init(void)

/* check if the CPU has a PRNG */
if (!cpacf_query_func(CPACF_KMC, CPACF_KMC_PRNG))
- return -EOPNOTSUPP;
+ return -ENODEV;

/* check if TRNG subfunction is available */
if (cpacf_query_func(CPACF_PRNO, CPACF_PRNO_TRNG))
@@ -837,7 +837,7 @@ static int __init prng_init(void)
if (prng_mode == PRNG_MODE_SHA512) {
pr_err("The prng module cannot "
"start in SHA-512 mode\n");
- return -EOPNOTSUPP;
+ return -ENODEV;
}
prng_mode = PRNG_MODE_TDES;
} else
--
2.21.0

2019-06-12 14:36:24

by David Hildenbrand

[permalink] [raw]
Subject: [PATCH v2 4/4] s390/crypto: sha: Use -ENODEV instead of -EOPNOTSUPP

Let's use the error value that is typically used if HW support is not
available when trying to load a module - this is also what systemd's
systemd-modules-load.service expects.

Signed-off-by: David Hildenbrand <[email protected]>
---
arch/s390/crypto/sha1_s390.c | 2 +-
arch/s390/crypto/sha256_s390.c | 2 +-
arch/s390/crypto/sha512_s390.c | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/s390/crypto/sha1_s390.c b/arch/s390/crypto/sha1_s390.c
index 009572e8276d..7c15542d3685 100644
--- a/arch/s390/crypto/sha1_s390.c
+++ b/arch/s390/crypto/sha1_s390.c
@@ -86,7 +86,7 @@ static struct shash_alg alg = {
static int __init sha1_s390_init(void)
{
if (!cpacf_query_func(CPACF_KIMD, CPACF_KIMD_SHA_1))
- return -EOPNOTSUPP;
+ return -ENODEV;
return crypto_register_shash(&alg);
}

diff --git a/arch/s390/crypto/sha256_s390.c b/arch/s390/crypto/sha256_s390.c
index 62833a1d8724..af7505148f80 100644
--- a/arch/s390/crypto/sha256_s390.c
+++ b/arch/s390/crypto/sha256_s390.c
@@ -117,7 +117,7 @@ static int __init sha256_s390_init(void)
int ret;

if (!cpacf_query_func(CPACF_KIMD, CPACF_KIMD_SHA_256))
- return -EOPNOTSUPP;
+ return -ENODEV;
ret = crypto_register_shash(&sha256_alg);
if (ret < 0)
goto out;
diff --git a/arch/s390/crypto/sha512_s390.c b/arch/s390/crypto/sha512_s390.c
index be589c340d15..ad29db085a18 100644
--- a/arch/s390/crypto/sha512_s390.c
+++ b/arch/s390/crypto/sha512_s390.c
@@ -127,7 +127,7 @@ static int __init init(void)
int ret;

if (!cpacf_query_func(CPACF_KIMD, CPACF_KIMD_SHA_512))
- return -EOPNOTSUPP;
+ return -ENODEV;
if ((ret = crypto_register_shash(&sha512_alg)) < 0)
goto out;
if ((ret = crypto_register_shash(&sha384_alg)) < 0)
--
2.21.0

2019-06-12 14:43:57

by Harald Freudenberger

[permalink] [raw]
Subject: Re: [PATCH v2 3/4] s390/crypto: prng: Use -ENODEV instead of -EOPNOTSUPP

On 12.06.19 12:22, David Hildenbrand wrote:
> Let's use the error value that is typically used if HW support is not
> available when trying to load a module - this is also what systemd's
> systemd-modules-load.service expects.
>
> Signed-off-by: David Hildenbrand <[email protected]>
> ---
> arch/s390/crypto/prng.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/s390/crypto/prng.c b/arch/s390/crypto/prng.c
> index 12cca467af7d..d977643fa627 100644
> --- a/arch/s390/crypto/prng.c
> +++ b/arch/s390/crypto/prng.c
> @@ -824,7 +824,7 @@ static int __init prng_init(void)
>
> /* check if the CPU has a PRNG */
> if (!cpacf_query_func(CPACF_KMC, CPACF_KMC_PRNG))
> - return -EOPNOTSUPP;
> + return -ENODEV;
>
> /* check if TRNG subfunction is available */
> if (cpacf_query_func(CPACF_PRNO, CPACF_PRNO_TRNG))
> @@ -837,7 +837,7 @@ static int __init prng_init(void)
> if (prng_mode == PRNG_MODE_SHA512) {
> pr_err("The prng module cannot "
> "start in SHA-512 mode\n");
> - return -EOPNOTSUPP;
> + return -ENODEV;
> }
> prng_mode = PRNG_MODE_TDES;
> } else
fine with me
Reviewed-by: Harald Freudenberger <[email protected]>

2019-06-12 14:44:20

by Harald Freudenberger

[permalink] [raw]
Subject: Re: [PATCH v2 2/4] s390/crypto: ghash: Use -ENODEV instead of -EOPNOTSUPP

On 12.06.19 12:22, David Hildenbrand wrote:
> Let's use the error value that is typically used if HW support is not
> available when trying to load a module - this is also what systemd's
> systemd-modules-load.service expects.
>
> Signed-off-by: David Hildenbrand <[email protected]>
> ---
> arch/s390/crypto/ghash_s390.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/s390/crypto/ghash_s390.c b/arch/s390/crypto/ghash_s390.c
> index 86aed30fad3a..eeeb6a7737a4 100644
> --- a/arch/s390/crypto/ghash_s390.c
> +++ b/arch/s390/crypto/ghash_s390.c
> @@ -137,7 +137,7 @@ static struct shash_alg ghash_alg = {
> static int __init ghash_mod_init(void)
> {
> if (!cpacf_query_func(CPACF_KIMD, CPACF_KIMD_GHASH))
> - return -EOPNOTSUPP;
> + return -ENODEV;
>
> return crypto_register_shash(&ghash_alg);
> }
fine with me
Reviewed-by: Harald Freudenberger <[email protected]>

2019-06-12 14:44:31

by Cornelia Huck

[permalink] [raw]
Subject: Re: [PATCH v2 2/4] s390/crypto: ghash: Use -ENODEV instead of -EOPNOTSUPP

On Wed, 12 Jun 2019 12:22:46 +0200
David Hildenbrand <[email protected]> wrote:

> Let's use the error value that is typically used if HW support is not
> available when trying to load a module - this is also what systemd's
> systemd-modules-load.service expects.
>
> Signed-off-by: David Hildenbrand <[email protected]>
> ---
> arch/s390/crypto/ghash_s390.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>

Reviewed-by: Cornelia Huck <[email protected]>

2019-06-12 14:45:48

by Cornelia Huck

[permalink] [raw]
Subject: Re: [PATCH v2 4/4] s390/crypto: sha: Use -ENODEV instead of -EOPNOTSUPP

On Wed, 12 Jun 2019 12:22:48 +0200
David Hildenbrand <[email protected]> wrote:

> Let's use the error value that is typically used if HW support is not
> available when trying to load a module - this is also what systemd's
> systemd-modules-load.service expects.
>
> Signed-off-by: David Hildenbrand <[email protected]>
> ---
> arch/s390/crypto/sha1_s390.c | 2 +-
> arch/s390/crypto/sha256_s390.c | 2 +-
> arch/s390/crypto/sha512_s390.c | 2 +-
> 3 files changed, 3 insertions(+), 3 deletions(-)
>

Reviewed-by: Cornelia Huck <[email protected]>

2019-06-12 14:46:22

by Cornelia Huck

[permalink] [raw]
Subject: Re: [PATCH v2 3/4] s390/crypto: prng: Use -ENODEV instead of -EOPNOTSUPP

On Wed, 12 Jun 2019 12:22:47 +0200
David Hildenbrand <[email protected]> wrote:

> Let's use the error value that is typically used if HW support is not
> available when trying to load a module - this is also what systemd's
> systemd-modules-load.service expects.
>
> Signed-off-by: David Hildenbrand <[email protected]>
> ---
> arch/s390/crypto/prng.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>

Reviewed-by: Cornelia Huck <[email protected]>