[PATCH-next] crypto: aspeed: fix type warnings

Neal Liu posted 1 patch 2 years, 7 months ago
There is a newer version of this series
drivers/crypto/aspeed/aspeed-acry.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
[PATCH-next] crypto: aspeed: fix type warnings
Posted by Neal Liu 2 years, 7 months ago
This patch fixes following warnings:

1. sparse: incorrect type in assignment (different base types)
Fix: change to __le32 type.
2. sparse: cast removes address space '__iomem' of expression
Fix: change to force cast.

Signed-off-by: Neal Liu <neal_liu@aspeedtech.com>
---
 drivers/crypto/aspeed/aspeed-acry.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/crypto/aspeed/aspeed-acry.c b/drivers/crypto/aspeed/aspeed-acry.c
index 164c524015f0..f8c733376469 100644
--- a/drivers/crypto/aspeed/aspeed-acry.c
+++ b/drivers/crypto/aspeed/aspeed-acry.c
@@ -252,7 +252,7 @@ static int aspeed_acry_rsa_ctx_copy(struct aspeed_acry_dev *acry_dev, void *buf,
 				    enum aspeed_rsa_key_mode mode)
 {
 	const u8 *src = xbuf;
-	u32 *dw_buf = (u32 *)buf;
+	__le32 *dw_buf = (__le32 *)buf;
 	int nbits, ndw;
 	int i, j, idx;
 	u32 data = 0;
@@ -302,7 +302,7 @@ static int aspeed_acry_rsa_ctx_copy(struct aspeed_acry_dev *acry_dev, void *buf,
 static int aspeed_acry_rsa_transfer(struct aspeed_acry_dev *acry_dev)
 {
 	struct akcipher_request *req = acry_dev->req;
-	u8 *sram_buffer = (u8 *)acry_dev->acry_sram;
+	u8 *sram_buffer = (u8 __force *)acry_dev->acry_sram;
 	struct scatterlist *out_sg = req->dst;
 	static u8 dram_buffer[ASPEED_ACRY_SRAM_MAX_LEN];
 	int leading_zero = 1;
-- 
2.25.1
Re: [PATCH-next] crypto: aspeed: fix type warnings
Posted by Herbert Xu 2 years, 7 months ago
On Thu, Feb 02, 2023 at 10:56:00AM +0800, Neal Liu wrote:
>
> @@ -302,7 +302,7 @@ static int aspeed_acry_rsa_ctx_copy(struct aspeed_acry_dev *acry_dev, void *buf,
>  static int aspeed_acry_rsa_transfer(struct aspeed_acry_dev *acry_dev)
>  {
>  	struct akcipher_request *req = acry_dev->req;
> -	u8 *sram_buffer = (u8 *)acry_dev->acry_sram;
> +	u8 *sram_buffer = (u8 __force *)acry_dev->acry_sram;

Wouldn't it be better to keep the iomem marker and then use readb
on sram_buffer?

Cheers,
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
RE: [PATCH-next] crypto: aspeed: fix type warnings
Posted by Neal Liu 2 years, 7 months ago
> -----Original Message-----
> From: Herbert Xu <herbert@gondor.apana.org.au>
> Sent: Thursday, February 2, 2023 11:10 AM
> To: Neal Liu <neal_liu@aspeedtech.com>
> Cc: Joel Stanley <joel@jms.id.au>; Andrew Jeffery <andrew@aj.id.au>; David
> S . Miller <davem@davemloft.net>; linux-arm-kernel@lists.infradead.org;
> linux-aspeed@lists.ozlabs.org; linux-kernel@vger.kernel.org;
> linux-crypto@vger.kernel.org
> Subject: Re: [PATCH-next] crypto: aspeed: fix type warnings
> 
> On Thu, Feb 02, 2023 at 10:56:00AM +0800, Neal Liu wrote:
> >
> > @@ -302,7 +302,7 @@ static int aspeed_acry_rsa_ctx_copy(struct
> > aspeed_acry_dev *acry_dev, void *buf,  static int
> > aspeed_acry_rsa_transfer(struct aspeed_acry_dev *acry_dev)  {
> >  	struct akcipher_request *req = acry_dev->req;
> > -	u8 *sram_buffer = (u8 *)acry_dev->acry_sram;
> > +	u8 *sram_buffer = (u8 __force *)acry_dev->acry_sram;
> 
> Wouldn't it be better to keep the iomem marker and then use readb on
> sram_buffer?
> 
This way works too.
I cannot tell which way is better. Do you prefer to keep the iomem marker?
Thanks

-Neal
Re: [PATCH-next] crypto: aspeed: fix type warnings
Posted by Herbert Xu 2 years, 7 months ago
On Thu, Feb 02, 2023 at 03:23:29AM +0000, Neal Liu wrote:
>
> I cannot tell which way is better. Do you prefer to keep the iomem marker?

The whole point of iomem is to prevent you from directly
dereferencing that memory.  So casting it away to remove the
warning simply defeats its purpose.

If you're worried about the overhead of readb perhaps you can
look into readb_relaxed after considering the effects of the
barriers.

Cheers,
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
RE: [PATCH-next] crypto: aspeed: fix type warnings
Posted by Neal Liu 2 years, 7 months ago
> >
> > I cannot tell which way is better. Do you prefer to keep the iomem marker?
> 
> The whole point of iomem is to prevent you from directly dereferencing that
> memory.  So casting it away to remove the warning simply defeats its
> purpose.
> 
> If you're worried about the overhead of readb perhaps you can look into
> readb_relaxed after considering the effects of the barriers.
> 
Thanks for the information. I'll send next patch as you suggested.

-Neal