diff mbox

[RFC] crypto: brcm - explicitly cast cipher to hash type

Message ID 20180324110242.9474-1-stefan@agner.ch (mailing list archive)
State Accepted
Delegated to: Herbert Xu
Headers show

Commit Message

Stefan Agner March 24, 2018, 11:02 a.m. UTC
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 <stefan@agner.ch>
---
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(-)

Comments

Raveendra Padasalagi March 28, 2018, 6:38 a.m. UTC | #1
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 <stefan@agner.ch> 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 <stefan@agner.ch>
> ---
> 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
>
Stefan Agner March 28, 2018, 3:41 p.m. UTC | #2
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 <stefan@agner.ch> 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 <stefan@agner.ch>
>> ---
>> 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
>>
Herbert Xu March 28, 2018, 3:45 p.m. UTC | #3
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,
Herbert Xu March 30, 2018, 5:43 p.m. UTC | #4
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 <stefan@agner.ch>

Patch applied.  Thanks.
diff mbox

Patch

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,