All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 -next] crypto: aspeed: fix type warnings
@ 2023-02-02  7:03 ` Neal Liu
  0 siblings, 0 replies; 8+ messages in thread
From: Neal Liu @ 2023-02-02  7:03 UTC (permalink / raw)
  To: Joel Stanley, Andrew Jeffery, Neal Liu, Herbert Xu, David S . Miller
  Cc: linux-arm-kernel, linux-aspeed, linux-kernel, linux-crypto

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: use readb to avoid dereferencing the memory.

Signed-off-by: Neal Liu <neal_liu@aspeedtech.com>
---
Change since v1: keep iomem marker to remain its purpose.

 drivers/crypto/aspeed/aspeed-acry.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/crypto/aspeed/aspeed-acry.c b/drivers/crypto/aspeed/aspeed-acry.c
index 164c524015f0..f2429e699d14 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 __iomem *sram_buffer = (u8 __iomem *)acry_dev->acry_sram;
 	struct scatterlist *out_sg = req->dst;
 	static u8 dram_buffer[ASPEED_ACRY_SRAM_MAX_LEN];
 	int leading_zero = 1;
@@ -321,11 +321,11 @@ static int aspeed_acry_rsa_transfer(struct aspeed_acry_dev *acry_dev)
 
 	for (j = ASPEED_ACRY_SRAM_MAX_LEN - 1; j >= 0; j--) {
 		data_idx = acry_dev->data_byte_mapping[j];
-		if (sram_buffer[data_idx] == 0 && leading_zero) {
+		if (readb(sram_buffer + data_idx) == 0 && leading_zero) {
 			result_nbytes--;
 		} else {
 			leading_zero = 0;
-			dram_buffer[i] = sram_buffer[data_idx];
+			dram_buffer[i] = readb(sram_buffer + data_idx);
 			i++;
 		}
 	}
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v2 -next] crypto: aspeed: fix type warnings
@ 2023-02-02  7:03 ` Neal Liu
  0 siblings, 0 replies; 8+ messages in thread
From: Neal Liu @ 2023-02-02  7:03 UTC (permalink / raw)
  To: Joel Stanley, Andrew Jeffery, Neal Liu, Herbert Xu, David S . Miller
  Cc: linux-arm-kernel, linux-aspeed, linux-kernel, linux-crypto

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: use readb to avoid dereferencing the memory.

Signed-off-by: Neal Liu <neal_liu@aspeedtech.com>
---
Change since v1: keep iomem marker to remain its purpose.

 drivers/crypto/aspeed/aspeed-acry.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/crypto/aspeed/aspeed-acry.c b/drivers/crypto/aspeed/aspeed-acry.c
index 164c524015f0..f2429e699d14 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 __iomem *sram_buffer = (u8 __iomem *)acry_dev->acry_sram;
 	struct scatterlist *out_sg = req->dst;
 	static u8 dram_buffer[ASPEED_ACRY_SRAM_MAX_LEN];
 	int leading_zero = 1;
@@ -321,11 +321,11 @@ static int aspeed_acry_rsa_transfer(struct aspeed_acry_dev *acry_dev)
 
 	for (j = ASPEED_ACRY_SRAM_MAX_LEN - 1; j >= 0; j--) {
 		data_idx = acry_dev->data_byte_mapping[j];
-		if (sram_buffer[data_idx] == 0 && leading_zero) {
+		if (readb(sram_buffer + data_idx) == 0 && leading_zero) {
 			result_nbytes--;
 		} else {
 			leading_zero = 0;
-			dram_buffer[i] = sram_buffer[data_idx];
+			dram_buffer[i] = readb(sram_buffer + data_idx);
 			i++;
 		}
 	}
-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 -next] crypto: aspeed: fix type warnings
  2023-02-02  7:03 ` Neal Liu
@ 2023-02-03  1:36   ` Dhananjay Phadke
  -1 siblings, 0 replies; 8+ messages in thread
From: Dhananjay Phadke @ 2023-02-03  1:36 UTC (permalink / raw)
  To: Neal Liu, Joel Stanley, Andrew Jeffery, Herbert Xu, David S . Miller
  Cc: linux-crypto, linux-aspeed, linux-arm-kernel, linux-kernel

On 2/1/2023 11:03 PM, Neal Liu wrote:
> 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: use readb to avoid dereferencing the memory.
> 
> Signed-off-by: Neal Liu <neal_liu@aspeedtech.com>
> ---
> Change since v1: keep iomem marker to remain its purpose.
> 
>   drivers/crypto/aspeed/aspeed-acry.c | 8 ++++----
>   1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/crypto/aspeed/aspeed-acry.c b/drivers/crypto/aspeed/aspeed-acry.c
> index 164c524015f0..f2429e699d14 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;

All callers are passing acry_dev->buf_addr as buf, can just change that 
type to __le32 * and deref here directly?

>   	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 __iomem *sram_buffer = (u8 __iomem *)acry_dev->acry_sram;

u8 cast seems unnecessary, readb takes (void *) and using "+ data_idx"
offset below anyway.


>   	struct scatterlist *out_sg = req->dst;
>   	static u8 dram_buffer[ASPEED_ACRY_SRAM_MAX_LEN];
>   	int leading_zero = 1;
> @@ -321,11 +321,11 @@ static int aspeed_acry_rsa_transfer(struct aspeed_acry_dev *acry_dev)
>   
>   	for (j = ASPEED_ACRY_SRAM_MAX_LEN - 1; j >= 0; j--) {
>   		data_idx = acry_dev->data_byte_mapping[j];
> -		if (sram_buffer[data_idx] == 0 && leading_zero) {
> +		if (readb(sram_buffer + data_idx) == 0 && leading_zero) {
>   			result_nbytes--;
>   		} else {
>   			leading_zero = 0;
> -			dram_buffer[i] = sram_buffer[data_idx];
> +			dram_buffer[i] = readb(sram_buffer + data_idx);
>   			i++;
>   		}
>   	}


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 -next] crypto: aspeed: fix type warnings
@ 2023-02-03  1:36   ` Dhananjay Phadke
  0 siblings, 0 replies; 8+ messages in thread
From: Dhananjay Phadke @ 2023-02-03  1:36 UTC (permalink / raw)
  To: Neal Liu, Joel Stanley, Andrew Jeffery, Herbert Xu, David S . Miller
  Cc: linux-crypto, linux-aspeed, linux-arm-kernel, linux-kernel

On 2/1/2023 11:03 PM, Neal Liu wrote:
> 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: use readb to avoid dereferencing the memory.
> 
> Signed-off-by: Neal Liu <neal_liu@aspeedtech.com>
> ---
> Change since v1: keep iomem marker to remain its purpose.
> 
>   drivers/crypto/aspeed/aspeed-acry.c | 8 ++++----
>   1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/crypto/aspeed/aspeed-acry.c b/drivers/crypto/aspeed/aspeed-acry.c
> index 164c524015f0..f2429e699d14 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;

All callers are passing acry_dev->buf_addr as buf, can just change that 
type to __le32 * and deref here directly?

>   	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 __iomem *sram_buffer = (u8 __iomem *)acry_dev->acry_sram;

u8 cast seems unnecessary, readb takes (void *) and using "+ data_idx"
offset below anyway.


>   	struct scatterlist *out_sg = req->dst;
>   	static u8 dram_buffer[ASPEED_ACRY_SRAM_MAX_LEN];
>   	int leading_zero = 1;
> @@ -321,11 +321,11 @@ static int aspeed_acry_rsa_transfer(struct aspeed_acry_dev *acry_dev)
>   
>   	for (j = ASPEED_ACRY_SRAM_MAX_LEN - 1; j >= 0; j--) {
>   		data_idx = acry_dev->data_byte_mapping[j];
> -		if (sram_buffer[data_idx] == 0 && leading_zero) {
> +		if (readb(sram_buffer + data_idx) == 0 && leading_zero) {
>   			result_nbytes--;
>   		} else {
>   			leading_zero = 0;
> -			dram_buffer[i] = sram_buffer[data_idx];
> +			dram_buffer[i] = readb(sram_buffer + data_idx);
>   			i++;
>   		}
>   	}


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 -next] crypto: aspeed: fix type warnings
  2023-02-03  1:36   ` Dhananjay Phadke
@ 2023-02-03  1:52     ` Herbert Xu
  -1 siblings, 0 replies; 8+ messages in thread
From: Herbert Xu @ 2023-02-03  1:52 UTC (permalink / raw)
  To: Dhananjay Phadke
  Cc: Neal Liu, Joel Stanley, Andrew Jeffery, David S . Miller,
	linux-crypto, linux-aspeed, linux-arm-kernel, linux-kernel

On Thu, Feb 02, 2023 at 05:36:05PM -0800, Dhananjay Phadke wrote:
>
> > diff --git a/drivers/crypto/aspeed/aspeed-acry.c b/drivers/crypto/aspeed/aspeed-acry.c
> > index 164c524015f0..f2429e699d14 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;
> 
> All callers are passing acry_dev->buf_addr as buf, can just change that type
> to __le32 * and deref here directly?

As buf is already void *, the cast can simply be removed.
> 
> >   	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 __iomem *sram_buffer = (u8 __iomem *)acry_dev->acry_sram;
> 
> u8 cast seems unnecessary, readb takes (void *) and using "+ data_idx"
> offset below anyway.

Either way a cast is unnecessary as (void __iomem *) converts to
(u8 __iomem *) just fine.

Thanks,
-- 
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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 -next] crypto: aspeed: fix type warnings
@ 2023-02-03  1:52     ` Herbert Xu
  0 siblings, 0 replies; 8+ messages in thread
From: Herbert Xu @ 2023-02-03  1:52 UTC (permalink / raw)
  To: Dhananjay Phadke
  Cc: Neal Liu, Joel Stanley, Andrew Jeffery, David S . Miller,
	linux-crypto, linux-aspeed, linux-arm-kernel, linux-kernel

On Thu, Feb 02, 2023 at 05:36:05PM -0800, Dhananjay Phadke wrote:
>
> > diff --git a/drivers/crypto/aspeed/aspeed-acry.c b/drivers/crypto/aspeed/aspeed-acry.c
> > index 164c524015f0..f2429e699d14 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;
> 
> All callers are passing acry_dev->buf_addr as buf, can just change that type
> to __le32 * and deref here directly?

As buf is already void *, the cast can simply be removed.
> 
> >   	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 __iomem *sram_buffer = (u8 __iomem *)acry_dev->acry_sram;
> 
> u8 cast seems unnecessary, readb takes (void *) and using "+ data_idx"
> offset below anyway.

Either way a cast is unnecessary as (void __iomem *) converts to
(u8 __iomem *) just fine.

Thanks,
-- 
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

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 8+ messages in thread

* RE: [PATCH v2 -next] crypto: aspeed: fix type warnings
  2023-02-03  1:52     ` Herbert Xu
@ 2023-02-03  3:25       ` Neal Liu
  -1 siblings, 0 replies; 8+ messages in thread
From: Neal Liu @ 2023-02-03  3:25 UTC (permalink / raw)
  To: Herbert Xu, Dhananjay Phadke
  Cc: Joel Stanley, Andrew Jeffery, David S . Miller, linux-crypto,
	linux-aspeed, linux-arm-kernel, linux-kernel

> > > diff --git a/drivers/crypto/aspeed/aspeed-acry.c
> > > b/drivers/crypto/aspeed/aspeed-acry.c
> > > index 164c524015f0..f2429e699d14 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;
> >
> > All callers are passing acry_dev->buf_addr as buf, can just change
> > that type to __le32 * and deref here directly?
> 
> As buf is already void *, the cast can simply be removed.

I'll just remove the cast. Thanks for your suggestion.

> >
> > >   	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 __iomem *sram_buffer = (u8 __iomem *)acry_dev->acry_sram;
> >
> > u8 cast seems unnecessary, readb takes (void *) and using "+ data_idx"
> > offset below anyway.
> 
> Either way a cast is unnecessary as (void __iomem *) converts to
> (u8 __iomem *) just fine.

I'll just remove the cast too.

-Neal

^ permalink raw reply	[flat|nested] 8+ messages in thread

* RE: [PATCH v2 -next] crypto: aspeed: fix type warnings
@ 2023-02-03  3:25       ` Neal Liu
  0 siblings, 0 replies; 8+ messages in thread
From: Neal Liu @ 2023-02-03  3:25 UTC (permalink / raw)
  To: Herbert Xu, Dhananjay Phadke
  Cc: Joel Stanley, Andrew Jeffery, David S . Miller, linux-crypto,
	linux-aspeed, linux-arm-kernel, linux-kernel

> > > diff --git a/drivers/crypto/aspeed/aspeed-acry.c
> > > b/drivers/crypto/aspeed/aspeed-acry.c
> > > index 164c524015f0..f2429e699d14 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;
> >
> > All callers are passing acry_dev->buf_addr as buf, can just change
> > that type to __le32 * and deref here directly?
> 
> As buf is already void *, the cast can simply be removed.

I'll just remove the cast. Thanks for your suggestion.

> >
> > >   	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 __iomem *sram_buffer = (u8 __iomem *)acry_dev->acry_sram;
> >
> > u8 cast seems unnecessary, readb takes (void *) and using "+ data_idx"
> > offset below anyway.
> 
> Either way a cast is unnecessary as (void __iomem *) converts to
> (u8 __iomem *) just fine.

I'll just remove the cast too.

-Neal

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2023-02-03 15:04 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-02  7:03 [PATCH v2 -next] crypto: aspeed: fix type warnings Neal Liu
2023-02-02  7:03 ` Neal Liu
2023-02-03  1:36 ` Dhananjay Phadke
2023-02-03  1:36   ` Dhananjay Phadke
2023-02-03  1:52   ` Herbert Xu
2023-02-03  1:52     ` Herbert Xu
2023-02-03  3:25     ` Neal Liu
2023-02-03  3:25       ` Neal Liu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.