Message ID | 20230202025600.2598548-1-neal_liu@aspeedtech.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [PATCH-next] crypto: aspeed: fix type warnings | expand |
> -----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
> > > > 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
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;
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(-)