2018-03-24 11:03:53

by Stefan Agner

[permalink] [raw]
Subject: [RFC PATCH] crypto: brcm - explicitly cast cipher to hash type

In the AES cases enum spu_cipher_type and enum hash_type have
the same values, so the assignment is fine. Explicitly cast
the enum type conversion.

This fixes two warnings when building with clang:
drivers/crypto/bcm/cipher.c:821:34: warning: implicit conversion from
enumeration type 'enum spu_cipher_type' to different enumeration
type 'enum hash_type' [-Wenum-conversion]
hash_parms.type = cipher_parms.type;
~ ~~~~~~~~~~~~~^~~~
drivers/crypto/bcm/cipher.c:1412:26: warning: implicit conversion from
enumeration type 'enum spu_cipher_type' to different enumeration
type 'enum hash_type' [-Wenum-conversion]
hash_parms.type = ctx->cipher_type;
~ ~~~~~^~~~~~~~~~~

Signed-off-by: Stefan Agner <[email protected]>
---
I am not familar with the IP... I would be glad if somebody with
better insight could have a look whether that patch makes sense.

drivers/crypto/bcm/cipher.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/crypto/bcm/cipher.c b/drivers/crypto/bcm/cipher.c
index 2b75f95bbe1b..309c67c7012f 100644
--- a/drivers/crypto/bcm/cipher.c
+++ b/drivers/crypto/bcm/cipher.c
@@ -818,7 +818,7 @@ static int handle_ahash_req(struct iproc_reqctx_s *rctx)

/* AES hashing keeps key size in type field, so need to copy it here */
if (hash_parms.alg == HASH_ALG_AES)
- hash_parms.type = cipher_parms.type;
+ hash_parms.type = (enum hash_type)cipher_parms.type;
else
hash_parms.type = spu->spu_hash_type(rctx->total_sent);

@@ -1409,7 +1409,7 @@ static int handle_aead_req(struct iproc_reqctx_s *rctx)
rctx->iv_ctr_len);

if (ctx->auth.alg == HASH_ALG_AES)
- hash_parms.type = ctx->cipher_type;
+ hash_parms.type = (enum hash_type)ctx->cipher_type;

/* General case AAD padding (CCM and RFC4543 special cases below) */
aead_parms.aad_pad_len = spu->spu_gcm_ccm_pad_len(ctx->cipher.mode,
--
2.16.2



2018-03-28 06:40:46

by Raveendra Padasalagi

[permalink] [raw]
Subject: Re: [RFC PATCH] crypto: brcm - explicitly cast cipher to hash type

Hi Stefan,

The change looks to be fine. From the IP point of view its using the
same values in case of AES cipher and hash types so explicit casting
should be ok.

-Raveendra

On Sat, Mar 24, 2018 at 4:32 PM, Stefan Agner <[email protected]> wrote:
> In the AES cases enum spu_cipher_type and enum hash_type have
> the same values, so the assignment is fine. Explicitly cast
> the enum type conversion.
>
> This fixes two warnings when building with clang:
> drivers/crypto/bcm/cipher.c:821:34: warning: implicit conversion from
> enumeration type 'enum spu_cipher_type' to different enumeration
> type 'enum hash_type' [-Wenum-conversion]
> hash_parms.type = cipher_parms.type;
> ~ ~~~~~~~~~~~~~^~~~
> drivers/crypto/bcm/cipher.c:1412:26: warning: implicit conversion from
> enumeration type 'enum spu_cipher_type' to different enumeration
> type 'enum hash_type' [-Wenum-conversion]
> hash_parms.type = ctx->cipher_type;
> ~ ~~~~~^~~~~~~~~~~
>
> Signed-off-by: Stefan Agner <[email protected]>
> ---
> I am not familar with the IP... I would be glad if somebody with
> better insight could have a look whether that patch makes sense.
>
> drivers/crypto/bcm/cipher.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/crypto/bcm/cipher.c b/drivers/crypto/bcm/cipher.c
> index 2b75f95bbe1b..309c67c7012f 100644
> --- a/drivers/crypto/bcm/cipher.c
> +++ b/drivers/crypto/bcm/cipher.c
> @@ -818,7 +818,7 @@ static int handle_ahash_req(struct iproc_reqctx_s *rctx)
>
> /* AES hashing keeps key size in type field, so need to copy it here */
> if (hash_parms.alg == HASH_ALG_AES)
> - hash_parms.type = cipher_parms.type;
> + hash_parms.type = (enum hash_type)cipher_parms.type;
> else
> hash_parms.type = spu->spu_hash_type(rctx->total_sent);
>
> @@ -1409,7 +1409,7 @@ static int handle_aead_req(struct iproc_reqctx_s *rctx)
> rctx->iv_ctr_len);
>
> if (ctx->auth.alg == HASH_ALG_AES)
> - hash_parms.type = ctx->cipher_type;
> + hash_parms.type = (enum hash_type)ctx->cipher_type;
>
> /* General case AAD padding (CCM and RFC4543 special cases below) */
> aead_parms.aad_pad_len = spu->spu_gcm_ccm_pad_len(ctx->cipher.mode,
> --
> 2.16.2
>

2018-03-28 15:47:50

by Herbert Xu

[permalink] [raw]
Subject: Re: [RFC PATCH] crypto: brcm - explicitly cast cipher to hash type

On Wed, Mar 28, 2018 at 05:41:30PM +0200, Stefan Agner wrote:
>
> Herbert, given that Raveendra agrees to the change, do you want me to
> send a non-RFC version or can you merge the patch as is?

There is no need to resend it.

Thanks,
--
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

2018-03-28 16:12:04

by Stefan Agner

[permalink] [raw]
Subject: Re: [RFC PATCH] crypto: brcm - explicitly cast cipher to hash type

On 28.03.2018 08:38, Raveendra Padasalagi wrote:
> Hi Stefan,
>
> The change looks to be fine. From the IP point of view its using the
> same values in case of AES cipher and hash types so explicit casting
> should be ok.

Can I take that as an Ack?

Herbert, given that Raveendra agrees to the change, do you want me to
send a non-RFC version or can you merge the patch as is?

--
Stefan


>
> -Raveendra
>
> On Sat, Mar 24, 2018 at 4:32 PM, Stefan Agner <[email protected]> wrote:
>> In the AES cases enum spu_cipher_type and enum hash_type have
>> the same values, so the assignment is fine. Explicitly cast
>> the enum type conversion.
>>
>> This fixes two warnings when building with clang:
>> drivers/crypto/bcm/cipher.c:821:34: warning: implicit conversion from
>> enumeration type 'enum spu_cipher_type' to different enumeration
>> type 'enum hash_type' [-Wenum-conversion]
>> hash_parms.type = cipher_parms.type;
>> ~ ~~~~~~~~~~~~~^~~~
>> drivers/crypto/bcm/cipher.c:1412:26: warning: implicit conversion from
>> enumeration type 'enum spu_cipher_type' to different enumeration
>> type 'enum hash_type' [-Wenum-conversion]
>> hash_parms.type = ctx->cipher_type;
>> ~ ~~~~~^~~~~~~~~~~
>>
>> Signed-off-by: Stefan Agner <[email protected]>
>> ---
>> I am not familar with the IP... I would be glad if somebody with
>> better insight could have a look whether that patch makes sense.
>>
>> drivers/crypto/bcm/cipher.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/crypto/bcm/cipher.c b/drivers/crypto/bcm/cipher.c
>> index 2b75f95bbe1b..309c67c7012f 100644
>> --- a/drivers/crypto/bcm/cipher.c
>> +++ b/drivers/crypto/bcm/cipher.c
>> @@ -818,7 +818,7 @@ static int handle_ahash_req(struct iproc_reqctx_s *rctx)
>>
>> /* AES hashing keeps key size in type field, so need to copy it here */
>> if (hash_parms.alg == HASH_ALG_AES)
>> - hash_parms.type = cipher_parms.type;
>> + hash_parms.type = (enum hash_type)cipher_parms.type;
>> else
>> hash_parms.type = spu->spu_hash_type(rctx->total_sent);
>>
>> @@ -1409,7 +1409,7 @@ static int handle_aead_req(struct iproc_reqctx_s *rctx)
>> rctx->iv_ctr_len);
>>
>> if (ctx->auth.alg == HASH_ALG_AES)
>> - hash_parms.type = ctx->cipher_type;
>> + hash_parms.type = (enum hash_type)ctx->cipher_type;
>>
>> /* General case AAD padding (CCM and RFC4543 special cases below) */
>> aead_parms.aad_pad_len = spu->spu_gcm_ccm_pad_len(ctx->cipher.mode,
>> --
>> 2.16.2
>>

2018-03-30 17:45:13

by Herbert Xu

[permalink] [raw]
Subject: Re: [RFC PATCH] crypto: brcm - explicitly cast cipher to hash type

On Sat, Mar 24, 2018 at 12:02:42PM +0100, Stefan Agner wrote:
> In the AES cases enum spu_cipher_type and enum hash_type have
> the same values, so the assignment is fine. Explicitly cast
> the enum type conversion.
>
> This fixes two warnings when building with clang:
> drivers/crypto/bcm/cipher.c:821:34: warning: implicit conversion from
> enumeration type 'enum spu_cipher_type' to different enumeration
> type 'enum hash_type' [-Wenum-conversion]
> hash_parms.type = cipher_parms.type;
> ~ ~~~~~~~~~~~~~^~~~
> drivers/crypto/bcm/cipher.c:1412:26: warning: implicit conversion from
> enumeration type 'enum spu_cipher_type' to different enumeration
> type 'enum hash_type' [-Wenum-conversion]
> hash_parms.type = ctx->cipher_type;
> ~ ~~~~~^~~~~~~~~~~
>
> Signed-off-by: Stefan Agner <[email protected]>

Patch applied. Thanks.
--
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt