public inbox for linux-ide@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/8] Fix the remaining sloppy timeout typing in libata
@ 2023-06-16 19:45 Sergey Shtylyov
  2023-06-16 19:46 ` [PATCH 1/8] ata: libata: fix parameter type of ata_deadline() Sergey Shtylyov
                   ` (10 more replies)
  0 siblings, 11 replies; 14+ messages in thread
From: Sergey Shtylyov @ 2023-06-16 19:45 UTC (permalink / raw)
  To: Damien Le Moal, linux-ide

Here are 8 patches against the 'for-next' branch of Damien's 'libata.git' repo.

The libata code still often uses the 'unsigned long' type for the millisecond
timeouts, while the kernel functions like msecs_to_jiffies() or msleep() only
take 'unsigned int' parameters for those. I've started fixing the timeout types
from ata_exec_internal[_sg]() that tripped the Svace static analyzer and posted
couple patches, promising to post a large continuation series somewhat later...
in my worst nightmare I couldn't imagine that this would take a whole year! :-(

Sergey Shtylyov (8):
  ata: libata: fix parameter type of ata_deadline()
  ata: libata-core: fix parameter types of ata_wait_register()
  ata: libata-eh: fix reset timeout type
  ata: fix debounce timings type
  ata: libata-scsi: fix timeout type in ata_scsi_park_store()
  ata: libahci: fix parameter type of ahci_exec_polled_cmd()
  ata: ahci_xgene: fix parameter types of xgene_ahci_poll_reg_val()
  ata: sata_sil24: fix parameter type of sil24_exec_polled_cmd()

 drivers/ata/ahci.c          |  2 +-
 drivers/ata/ahci_qoriq.c    |  2 +-
 drivers/ata/ahci_xgene.c    |  7 +++----
 drivers/ata/libahci.c       |  7 ++++---
 drivers/ata/libata-core.c   |  6 +++---
 drivers/ata/libata-eh.c     |  6 +++---
 drivers/ata/libata-sata.c   | 16 ++++++++--------
 drivers/ata/libata-scsi.c   |  4 ++--
 drivers/ata/libata-sff.c    |  2 +-
 drivers/ata/sata_highbank.c |  2 +-
 drivers/ata/sata_inic162x.c |  2 +-
 drivers/ata/sata_mv.c       |  2 +-
 drivers/ata/sata_nv.c       |  2 +-
 drivers/ata/sata_sil24.c    |  4 ++--
 include/linux/libata.h      | 24 ++++++++++++------------
 15 files changed, 44 insertions(+), 44 deletions(-)

-- 
2.26.3

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

* [PATCH 1/8] ata: libata: fix parameter type of ata_deadline()
  2023-06-16 19:45 [PATCH 0/8] Fix the remaining sloppy timeout typing in libata Sergey Shtylyov
@ 2023-06-16 19:46 ` Sergey Shtylyov
  2023-06-16 19:46 ` [PATCH 2/8] ata: libata-core: fix parameter types of ata_wait_register() Sergey Shtylyov
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Sergey Shtylyov @ 2023-06-16 19:46 UTC (permalink / raw)
  To: Damien Le Moal, linux-ide

ata_deadline() passes its 'unsigned long timeout_msecs'  parameter verbatim
to msecs_to_jiffies() which takes just 'unsigned int' -- eliminate unneeded
implicit cast...

Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
---
 include/linux/libata.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/libata.h b/include/linux/libata.h
index bc756f8586f3..1cf727632970 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -1860,7 +1860,7 @@ static inline int ata_check_ready(u8 status)
 }
 
 static inline unsigned long ata_deadline(unsigned long from_jiffies,
-					 unsigned long timeout_msecs)
+					 unsigned int timeout_msecs)
 {
 	return from_jiffies + msecs_to_jiffies(timeout_msecs);
 }
-- 
2.26.3


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

* [PATCH 2/8] ata: libata-core: fix parameter types of ata_wait_register()
  2023-06-16 19:45 [PATCH 0/8] Fix the remaining sloppy timeout typing in libata Sergey Shtylyov
  2023-06-16 19:46 ` [PATCH 1/8] ata: libata: fix parameter type of ata_deadline() Sergey Shtylyov
@ 2023-06-16 19:46 ` Sergey Shtylyov
  2023-06-16 19:46 ` [PATCH 3/8] ata: libata-eh: fix reset timeout type Sergey Shtylyov
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Sergey Shtylyov @ 2023-06-16 19:46 UTC (permalink / raw)
  To: Damien Le Moal, linux-ide

ata_wait_register() passes its 'unsigned long {interval|timeout}' params
verbatim to ata_{msleep|deadline}() that just take 'unsigned int' param
for the time intervals in ms -- eliminate unneeded implicit casts...

Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
---
 drivers/ata/libata-core.c | 2 +-
 include/linux/libata.h    | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 8796ef51641c..e40785246634 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -6487,7 +6487,7 @@ EXPORT_SYMBOL_GPL(ata_msleep);
  *	The final register value.
  */
 u32 ata_wait_register(struct ata_port *ap, void __iomem *reg, u32 mask, u32 val,
-		      unsigned long interval, unsigned long timeout)
+		      unsigned int interval, unsigned int timeout)
 {
 	unsigned long deadline;
 	u32 tmp;
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 1cf727632970..059fe8386118 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -1105,7 +1105,7 @@ static inline void ata_sas_port_resume(struct ata_port *ap)
 extern int ata_ratelimit(void);
 extern void ata_msleep(struct ata_port *ap, unsigned int msecs);
 extern u32 ata_wait_register(struct ata_port *ap, void __iomem *reg, u32 mask,
-			u32 val, unsigned long interval, unsigned long timeout);
+			     u32 val, unsigned int interval, unsigned int timeout);
 extern int atapi_cmd_type(u8 opcode);
 extern unsigned int ata_pack_xfermask(unsigned int pio_mask,
 				      unsigned int mwdma_mask,
-- 
2.26.3


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

* [PATCH 3/8] ata: libata-eh: fix reset timeout type
  2023-06-16 19:45 [PATCH 0/8] Fix the remaining sloppy timeout typing in libata Sergey Shtylyov
  2023-06-16 19:46 ` [PATCH 1/8] ata: libata: fix parameter type of ata_deadline() Sergey Shtylyov
  2023-06-16 19:46 ` [PATCH 2/8] ata: libata-core: fix parameter types of ata_wait_register() Sergey Shtylyov
@ 2023-06-16 19:46 ` Sergey Shtylyov
  2023-06-16 19:46 ` [PATCH 4/8] ata: fix debounce timings type Sergey Shtylyov
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Sergey Shtylyov @ 2023-06-16 19:46 UTC (permalink / raw)
  To: Damien Le Moal, linux-ide

ata_eh_reset_timeouts[] stores 'unsigned long' timeouts in ms, while
ata_eh_reset() passes these values to ata_deadline() that takes just
'unsigned int timeout_msecs' parameter.  Change the reset timeout table
element's type to 'unsigned int' -- all timeouts fit into 'unsigned int'
but we have to change ULONG_MAX to UINT_MAX...

Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
---
 drivers/ata/libata-eh.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c
index b80e68000dd3..3a70a1fbfa9e 100644
--- a/drivers/ata/libata-eh.c
+++ b/drivers/ata/libata-eh.c
@@ -78,12 +78,12 @@ enum {
  * are mostly for error handling, hotplug and those outlier devices that
  * take an exceptionally long time to recover from reset.
  */
-static const unsigned long ata_eh_reset_timeouts[] = {
+static const unsigned int ata_eh_reset_timeouts[] = {
 	10000,	/* most drives spin up by 10sec */
 	10000,	/* > 99% working drives spin up before 20sec */
 	35000,	/* give > 30 secs of idleness for outlier devices */
 	 5000,	/* and sweet one last chance */
-	ULONG_MAX, /* > 1 min has elapsed, give up */
+	UINT_MAX, /* > 1 min has elapsed, give up */
 };
 
 static const unsigned int ata_eh_identify_timeouts[] = {
@@ -2466,7 +2466,7 @@ int ata_eh_reset(struct ata_link *link, int classify,
 	/*
 	 * Prepare to reset
 	 */
-	while (ata_eh_reset_timeouts[max_tries] != ULONG_MAX)
+	while (ata_eh_reset_timeouts[max_tries] != UINT_MAX)
 		max_tries++;
 	if (link->flags & ATA_LFLAG_RST_ONCE)
 		max_tries = 1;
-- 
2.26.3


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

* [PATCH 4/8] ata: fix debounce timings type
  2023-06-16 19:45 [PATCH 0/8] Fix the remaining sloppy timeout typing in libata Sergey Shtylyov
                   ` (2 preceding siblings ...)
  2023-06-16 19:46 ` [PATCH 3/8] ata: libata-eh: fix reset timeout type Sergey Shtylyov
@ 2023-06-16 19:46 ` Sergey Shtylyov
  2023-06-16 19:46 ` [PATCH 5/8] ata: libata-scsi: fix timeout type in ata_scsi_park_store() Sergey Shtylyov
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Sergey Shtylyov @ 2023-06-16 19:46 UTC (permalink / raw)
  To: Damien Le Moal, linux-ide

sata_deb_timing_{hotplug|long|normal}[] store 'unsigned long' debounce
timeouts in ms, while sata_link_debounce() eventually uses those timeouts
by calling ata_{deadline|msleep}( which take just 'unsigned int'.  Change
the debounce timeout table element's type to 'unsigned int' -- all these
timeouts happily fit into 'unsigned int'...

Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
---
 drivers/ata/ahci.c          |  2 +-
 drivers/ata/ahci_qoriq.c    |  2 +-
 drivers/ata/ahci_xgene.c    |  2 +-
 drivers/ata/libahci.c       |  2 +-
 drivers/ata/libata-core.c   |  4 ++--
 drivers/ata/libata-sata.c   | 16 ++++++++--------
 drivers/ata/libata-sff.c    |  2 +-
 drivers/ata/sata_highbank.c |  2 +-
 drivers/ata/sata_inic162x.c |  2 +-
 drivers/ata/sata_mv.c       |  2 +-
 drivers/ata/sata_nv.c       |  2 +-
 include/linux/libata.h      | 20 ++++++++++----------
 12 files changed, 29 insertions(+), 29 deletions(-)

diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index addba109406b..02503e903e4a 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -807,7 +807,7 @@ static int ahci_p5wdh_hardreset(struct ata_link *link, unsigned int *class,
 static int ahci_avn_hardreset(struct ata_link *link, unsigned int *class,
 			      unsigned long deadline)
 {
-	const unsigned long *timing = sata_ehc_deb_timing(&link->eh_context);
+	const unsigned int *timing = sata_ehc_deb_timing(&link->eh_context);
 	struct ata_port *ap = link->ap;
 	struct ahci_port_priv *pp = ap->private_data;
 	struct ahci_host_priv *hpriv = ap->host->private_data;
diff --git a/drivers/ata/ahci_qoriq.c b/drivers/ata/ahci_qoriq.c
index 3d01b118c9a1..fa99c1870d74 100644
--- a/drivers/ata/ahci_qoriq.c
+++ b/drivers/ata/ahci_qoriq.c
@@ -90,7 +90,7 @@ MODULE_DEVICE_TABLE(acpi, ahci_qoriq_acpi_match);
 static int ahci_qoriq_hardreset(struct ata_link *link, unsigned int *class,
 			  unsigned long deadline)
 {
-	const unsigned long *timing = sata_ehc_deb_timing(&link->eh_context);
+	const unsigned int *timing = sata_ehc_deb_timing(&link->eh_context);
 	void __iomem *port_mmio = ahci_port_base(link->ap);
 	u32 px_cmd, px_is, px_val;
 	struct ata_port *ap = link->ap;
diff --git a/drivers/ata/ahci_xgene.c b/drivers/ata/ahci_xgene.c
index eb773f2e28fc..674dd01c73f6 100644
--- a/drivers/ata/ahci_xgene.c
+++ b/drivers/ata/ahci_xgene.c
@@ -350,7 +350,7 @@ static void xgene_ahci_set_phy_cfg(struct xgene_ahci_context *ctx, int channel)
 static int xgene_ahci_do_hardreset(struct ata_link *link,
 				   unsigned long deadline, bool *online)
 {
-	const unsigned long *timing = sata_ehc_deb_timing(&link->eh_context);
+	const unsigned int *timing = sata_ehc_deb_timing(&link->eh_context);
 	struct ata_port *ap = link->ap;
 	struct ahci_host_priv *hpriv = ap->host->private_data;
 	struct xgene_ahci_context *ctx = hpriv->plat_data;
diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c
index 06aec35f88f2..ad2bfcbff3bc 100644
--- a/drivers/ata/libahci.c
+++ b/drivers/ata/libahci.c
@@ -1587,7 +1587,7 @@ static int ahci_pmp_retry_softreset(struct ata_link *link, unsigned int *class,
 int ahci_do_hardreset(struct ata_link *link, unsigned int *class,
 		      unsigned long deadline, bool *online)
 {
-	const unsigned long *timing = sata_ehc_deb_timing(&link->eh_context);
+	const unsigned int *timing = sata_ehc_deb_timing(&link->eh_context);
 	struct ata_port *ap = link->ap;
 	struct ahci_port_priv *pp = ap->private_data;
 	struct ahci_host_priv *hpriv = ap->host->private_data;
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index e40785246634..b7a65226f724 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -3617,7 +3617,7 @@ int ata_std_prereset(struct ata_link *link, unsigned long deadline)
 {
 	struct ata_port *ap = link->ap;
 	struct ata_eh_context *ehc = &link->eh_context;
-	const unsigned long *timing = sata_ehc_deb_timing(ehc);
+	const unsigned int *timing = sata_ehc_deb_timing(ehc);
 	int rc;
 
 	/* if we're about to do hardreset, nothing more to do */
@@ -3659,7 +3659,7 @@ EXPORT_SYMBOL_GPL(ata_std_prereset);
 int sata_std_hardreset(struct ata_link *link, unsigned int *class,
 		       unsigned long deadline)
 {
-	const unsigned long *timing = sata_ehc_deb_timing(&link->eh_context);
+	const unsigned int *timing = sata_ehc_deb_timing(&link->eh_context);
 	bool online;
 	int rc;
 
diff --git a/drivers/ata/libata-sata.c b/drivers/ata/libata-sata.c
index 6c07025011ed..335299db15da 100644
--- a/drivers/ata/libata-sata.c
+++ b/drivers/ata/libata-sata.c
@@ -17,11 +17,11 @@
 #include "libata-transport.h"
 
 /* debounce timing parameters in msecs { interval, duration, timeout } */
-const unsigned long sata_deb_timing_normal[]		= {   5,  100, 2000 };
+const unsigned int sata_deb_timing_normal[]		= {   5,  100, 2000 };
 EXPORT_SYMBOL_GPL(sata_deb_timing_normal);
-const unsigned long sata_deb_timing_hotplug[]		= {  25,  500, 2000 };
+const unsigned int sata_deb_timing_hotplug[]		= {  25,  500, 2000 };
 EXPORT_SYMBOL_GPL(sata_deb_timing_hotplug);
-const unsigned long sata_deb_timing_long[]		= { 100, 2000, 5000 };
+const unsigned int sata_deb_timing_long[]		= { 100, 2000, 5000 };
 EXPORT_SYMBOL_GPL(sata_deb_timing_long);
 
 /**
@@ -230,11 +230,11 @@ EXPORT_SYMBOL_GPL(ata_tf_from_fis);
  *	RETURNS:
  *	0 on success, -errno on failure.
  */
-int sata_link_debounce(struct ata_link *link, const unsigned long *params,
+int sata_link_debounce(struct ata_link *link, const unsigned int *params,
 		       unsigned long deadline)
 {
-	unsigned long interval = params[0];
-	unsigned long duration = params[1];
+	unsigned int interval = params[0];
+	unsigned int duration = params[1];
 	unsigned long last_jiffies, t;
 	u32 last, cur;
 	int rc;
@@ -293,7 +293,7 @@ EXPORT_SYMBOL_GPL(sata_link_debounce);
  *	RETURNS:
  *	0 on success, -errno on failure.
  */
-int sata_link_resume(struct ata_link *link, const unsigned long *params,
+int sata_link_resume(struct ata_link *link, const unsigned int *params,
 		     unsigned long deadline)
 {
 	int tries = ATA_LINK_RESUME_TRIES;
@@ -526,7 +526,7 @@ EXPORT_SYMBOL_GPL(sata_set_spd);
  *	RETURNS:
  *	0 on success, -errno otherwise.
  */
-int sata_link_hardreset(struct ata_link *link, const unsigned long *timing,
+int sata_link_hardreset(struct ata_link *link, const unsigned int *timing,
 			unsigned long deadline,
 			bool *online, int (*check_ready)(struct ata_link *))
 {
diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c
index 9d28badfe41d..ac55dfc2d85f 100644
--- a/drivers/ata/libata-sff.c
+++ b/drivers/ata/libata-sff.c
@@ -1971,7 +1971,7 @@ int sata_sff_hardreset(struct ata_link *link, unsigned int *class,
 		       unsigned long deadline)
 {
 	struct ata_eh_context *ehc = &link->eh_context;
-	const unsigned long *timing = sata_ehc_deb_timing(ehc);
+	const unsigned int *timing = sata_ehc_deb_timing(ehc);
 	bool online;
 	int rc;
 
diff --git a/drivers/ata/sata_highbank.c b/drivers/ata/sata_highbank.c
index d6b324d03e59..f6d8ab512d7d 100644
--- a/drivers/ata/sata_highbank.c
+++ b/drivers/ata/sata_highbank.c
@@ -385,7 +385,7 @@ static int highbank_initialize_phys(struct device *dev, void __iomem *addr)
 static int ahci_highbank_hardreset(struct ata_link *link, unsigned int *class,
 				unsigned long deadline)
 {
-	static const unsigned long timing[] = { 5, 100, 500};
+	static const unsigned int timing[] = { 5, 100, 500};
 	struct ata_port *ap = link->ap;
 	struct ahci_port_priv *pp = ap->private_data;
 	struct ahci_host_priv *hpriv = ap->host->private_data;
diff --git a/drivers/ata/sata_inic162x.c b/drivers/ata/sata_inic162x.c
index 2c8c78ed86c1..db9c255dc9f2 100644
--- a/drivers/ata/sata_inic162x.c
+++ b/drivers/ata/sata_inic162x.c
@@ -619,7 +619,7 @@ static int inic_hardreset(struct ata_link *link, unsigned int *class,
 	struct ata_port *ap = link->ap;
 	void __iomem *port_base = inic_port_base(ap);
 	void __iomem *idma_ctl = port_base + PORT_IDMA_CTL;
-	const unsigned long *timing = sata_ehc_deb_timing(&link->eh_context);
+	const unsigned int *timing = sata_ehc_deb_timing(&link->eh_context);
 	int rc;
 
 	/* hammer it into sane state */
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c
index d404e631d152..41c107e15c40 100644
--- a/drivers/ata/sata_mv.c
+++ b/drivers/ata/sata_mv.c
@@ -3633,7 +3633,7 @@ static int mv_hardreset(struct ata_link *link, unsigned int *class,
 
 	/* Workaround for errata FEr SATA#10 (part 2) */
 	do {
-		const unsigned long *timing =
+		const unsigned int *timing =
 				sata_ehc_deb_timing(&link->eh_context);
 
 		rc = sata_link_hardreset(link, timing, deadline + extra,
diff --git a/drivers/ata/sata_nv.c b/drivers/ata/sata_nv.c
index abf5651c87ab..0a0cee755bde 100644
--- a/drivers/ata/sata_nv.c
+++ b/drivers/ata/sata_nv.c
@@ -1529,7 +1529,7 @@ static int nv_hardreset(struct ata_link *link, unsigned int *class,
 		sata_link_hardreset(link, sata_deb_timing_hotplug, deadline,
 				    NULL, NULL);
 	else {
-		const unsigned long *timing = sata_ehc_deb_timing(ehc);
+		const unsigned int *timing = sata_ehc_deb_timing(ehc);
 		int rc;
 
 		if (!(ehc->i.flags & ATA_EHI_QUIET))
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 059fe8386118..2deb76b2ff53 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -1155,11 +1155,11 @@ extern void ata_scsi_cmd_error_handler(struct Scsi_Host *host, struct ata_port *
  * SATA specific code - drivers/ata/libata-sata.c
  */
 #ifdef CONFIG_SATA_HOST
-extern const unsigned long sata_deb_timing_normal[];
-extern const unsigned long sata_deb_timing_hotplug[];
-extern const unsigned long sata_deb_timing_long[];
+extern const unsigned int sata_deb_timing_normal[];
+extern const unsigned int sata_deb_timing_hotplug[];
+extern const unsigned int sata_deb_timing_long[];
 
-static inline const unsigned long *
+static inline const unsigned int *
 sata_ehc_deb_timing(struct ata_eh_context *ehc)
 {
 	if (ehc->i.flags & ATA_EHI_HOTPLUGGED)
@@ -1174,13 +1174,13 @@ extern int sata_scr_write(struct ata_link *link, int reg, u32 val);
 extern int sata_scr_write_flush(struct ata_link *link, int reg, u32 val);
 extern int sata_set_spd(struct ata_link *link);
 extern int sata_link_hardreset(struct ata_link *link,
-			const unsigned long *timing, unsigned long deadline,
+			const unsigned int *timing, unsigned long deadline,
 			bool *online, int (*check_ready)(struct ata_link *));
-extern int sata_link_resume(struct ata_link *link, const unsigned long *params,
+extern int sata_link_resume(struct ata_link *link, const unsigned int *params,
 			    unsigned long deadline);
 extern void ata_eh_analyze_ncq_error(struct ata_link *link);
 #else
-static inline const unsigned long *
+static inline const unsigned int *
 sata_ehc_deb_timing(struct ata_eh_context *ehc)
 {
 	return NULL;
@@ -1200,7 +1200,7 @@ static inline int sata_scr_write_flush(struct ata_link *link, int reg, u32 val)
 }
 static inline int sata_set_spd(struct ata_link *link) { return -EOPNOTSUPP; }
 static inline int sata_link_hardreset(struct ata_link *link,
-				      const unsigned long *timing,
+				      const unsigned int *timing,
 				      unsigned long deadline,
 				      bool *online,
 				      int (*check_ready)(struct ata_link *))
@@ -1210,7 +1210,7 @@ static inline int sata_link_hardreset(struct ata_link *link,
 	return -EOPNOTSUPP;
 }
 static inline int sata_link_resume(struct ata_link *link,
-				   const unsigned long *params,
+				   const unsigned int *params,
 				   unsigned long deadline)
 {
 	return -EOPNOTSUPP;
@@ -1218,7 +1218,7 @@ static inline int sata_link_resume(struct ata_link *link,
 static inline void ata_eh_analyze_ncq_error(struct ata_link *link) { }
 #endif
 extern int sata_link_debounce(struct ata_link *link,
-			const unsigned long *params, unsigned long deadline);
+			      const unsigned int *params, unsigned long deadline);
 extern int sata_link_scr_lpm(struct ata_link *link, enum ata_lpm_policy policy,
 			     bool spm_wakeup);
 extern int ata_slave_link_init(struct ata_port *ap);
-- 
2.26.3


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

* [PATCH 5/8] ata: libata-scsi: fix timeout type in ata_scsi_park_store()
  2023-06-16 19:45 [PATCH 0/8] Fix the remaining sloppy timeout typing in libata Sergey Shtylyov
                   ` (3 preceding siblings ...)
  2023-06-16 19:46 ` [PATCH 4/8] ata: fix debounce timings type Sergey Shtylyov
@ 2023-06-16 19:46 ` Sergey Shtylyov
  2023-06-16 19:46 ` [PATCH 6/8] ata: libahci: fix parameter type of ahci_exec_polled_cmd() Sergey Shtylyov
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Sergey Shtylyov @ 2023-06-16 19:46 UTC (permalink / raw)
  To: Damien Le Moal, linux-ide

ata_scsi_park_store() passes its 'long input' variable (if it's >= 0) to
ata_deadline() that now takes 'unsigned int' -- eliminate unneeded implicit
cast...

Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
---
 drivers/ata/libata-scsi.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index 9e79998e3958..16f574a8958f 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -131,11 +131,11 @@ static ssize_t ata_scsi_park_store(struct device *device,
 	struct scsi_device *sdev = to_scsi_device(device);
 	struct ata_port *ap;
 	struct ata_device *dev;
-	long int input;
+	int input;
 	unsigned long flags;
 	int rc;
 
-	rc = kstrtol(buf, 10, &input);
+	rc = kstrtoint(buf, 10, &input);
 	if (rc)
 		return rc;
 	if (input < -2)
-- 
2.26.3


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

* [PATCH 6/8] ata: libahci: fix parameter type of ahci_exec_polled_cmd()
  2023-06-16 19:45 [PATCH 0/8] Fix the remaining sloppy timeout typing in libata Sergey Shtylyov
                   ` (4 preceding siblings ...)
  2023-06-16 19:46 ` [PATCH 5/8] ata: libata-scsi: fix timeout type in ata_scsi_park_store() Sergey Shtylyov
@ 2023-06-16 19:46 ` Sergey Shtylyov
  2023-06-16 19:46 ` [PATCH 7/8] ata: ahci_xgene: fix parameter types of xgene_ahci_poll_reg_val() Sergey Shtylyov
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Sergey Shtylyov @ 2023-06-16 19:46 UTC (permalink / raw)
  To: Damien Le Moal, linux-ide

ahci_exec_polled_cmd() passes its 'unsigned long timeout_msec' parameter
to ata_wait_register() that now takes 'unsigned int' -- eliminate unneeded
implicit casts, not forgetting about ahci_do_softreset()...

Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
---
 drivers/ata/libahci.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c
index ad2bfcbff3bc..e2bacedf28ef 100644
--- a/drivers/ata/libahci.c
+++ b/drivers/ata/libahci.c
@@ -1403,7 +1403,7 @@ EXPORT_SYMBOL_GPL(ahci_kick_engine);
 
 static int ahci_exec_polled_cmd(struct ata_port *ap, int pmp,
 				struct ata_taskfile *tf, int is_cmd, u16 flags,
-				unsigned long timeout_msec)
+				unsigned int timeout_msec)
 {
 	const u32 cmd_fis_len = 5; /* five dwords */
 	struct ahci_port_priv *pp = ap->private_data;
@@ -1448,7 +1448,8 @@ int ahci_do_softreset(struct ata_link *link, unsigned int *class,
 	struct ahci_host_priv *hpriv = ap->host->private_data;
 	struct ahci_port_priv *pp = ap->private_data;
 	const char *reason = NULL;
-	unsigned long now, msecs;
+	unsigned long now;
+	unsigned int msecs;
 	struct ata_taskfile tf;
 	bool fbs_disabled = false;
 	int rc;
-- 
2.26.3


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

* [PATCH 7/8] ata: ahci_xgene: fix parameter types of xgene_ahci_poll_reg_val()
  2023-06-16 19:45 [PATCH 0/8] Fix the remaining sloppy timeout typing in libata Sergey Shtylyov
                   ` (5 preceding siblings ...)
  2023-06-16 19:46 ` [PATCH 6/8] ata: libahci: fix parameter type of ahci_exec_polled_cmd() Sergey Shtylyov
@ 2023-06-16 19:46 ` Sergey Shtylyov
  2023-06-16 19:46 ` [PATCH 8/8] ata: sata_sil24: fix parameter type of sil24_exec_polled_cmd() Sergey Shtylyov
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Sergey Shtylyov @ 2023-06-16 19:46 UTC (permalink / raw)
  To: Damien Le Moal, linux-ide

xgene_ahci_poll_reg_val() passes its 'unsigned long {interval|timeout}'
params verbatim to ata_{msleep|deadline}() that just take 'unsigned int'
param for the time intervals in ms -- eliminate unneeded implicit cast...

Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
---
 drivers/ata/ahci_xgene.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/ata/ahci_xgene.c b/drivers/ata/ahci_xgene.c
index 674dd01c73f6..ecf5a33796be 100644
--- a/drivers/ata/ahci_xgene.c
+++ b/drivers/ata/ahci_xgene.c
@@ -110,9 +110,8 @@ static int xgene_ahci_init_memram(struct xgene_ahci_context *ctx)
  * @timeout : timeout for achieving the value.
  */
 static int xgene_ahci_poll_reg_val(struct ata_port *ap,
-				   void __iomem *reg, unsigned
-				   int val, unsigned long interval,
-				   unsigned long timeout)
+				   void __iomem *reg, unsigned int val,
+				   unsigned int interval, unsigned int timeout)
 {
 	unsigned long deadline;
 	unsigned int tmp;
-- 
2.26.3


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

* [PATCH 8/8] ata: sata_sil24: fix parameter type of sil24_exec_polled_cmd()
  2023-06-16 19:45 [PATCH 0/8] Fix the remaining sloppy timeout typing in libata Sergey Shtylyov
                   ` (6 preceding siblings ...)
  2023-06-16 19:46 ` [PATCH 7/8] ata: ahci_xgene: fix parameter types of xgene_ahci_poll_reg_val() Sergey Shtylyov
@ 2023-06-16 19:46 ` Sergey Shtylyov
  2023-06-22 23:49 ` [PATCH 0/8] Fix the remaining sloppy timeout typing in libata Damien Le Moal
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Sergey Shtylyov @ 2023-06-16 19:46 UTC (permalink / raw)
  To: Damien Le Moal, linux-ide

sil24_exec_polled_cmd() passes its 'unsigned long timeout_msec' parameter
to ata_wait_register() that now takes 'unsigned int' -- eliminate unneeded
implicit casts, not forgetting about sil24_do_softreset()...

Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
---
 drivers/ata/sata_sil24.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/ata/sata_sil24.c b/drivers/ata/sata_sil24.c
index e72a0257990d..142e70bfc498 100644
--- a/drivers/ata/sata_sil24.c
+++ b/drivers/ata/sata_sil24.c
@@ -597,7 +597,7 @@ static int sil24_init_port(struct ata_port *ap)
 static int sil24_exec_polled_cmd(struct ata_port *ap, int pmp,
 				 const struct ata_taskfile *tf,
 				 int is_cmd, u32 ctrl,
-				 unsigned long timeout_msec)
+				 unsigned int timeout_msec)
 {
 	void __iomem *port = sil24_port_base(ap);
 	struct sil24_port_priv *pp = ap->private_data;
@@ -651,7 +651,7 @@ static int sil24_softreset(struct ata_link *link, unsigned int *class,
 {
 	struct ata_port *ap = link->ap;
 	int pmp = sata_srst_pmp(link);
-	unsigned long timeout_msec = 0;
+	unsigned int timeout_msec = 0;
 	struct ata_taskfile tf;
 	const char *reason;
 	int rc;
-- 
2.26.3


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

* Re: [PATCH 0/8] Fix the remaining sloppy timeout typing in libata
  2023-06-16 19:45 [PATCH 0/8] Fix the remaining sloppy timeout typing in libata Sergey Shtylyov
                   ` (7 preceding siblings ...)
  2023-06-16 19:46 ` [PATCH 8/8] ata: sata_sil24: fix parameter type of sil24_exec_polled_cmd() Sergey Shtylyov
@ 2023-06-22 23:49 ` Damien Le Moal
  2023-07-06 20:31   ` Sergey Shtylyov
  2023-07-17  0:51 ` Damien Le Moal
  2023-07-25 23:36 ` Damien Le Moal
  10 siblings, 1 reply; 14+ messages in thread
From: Damien Le Moal @ 2023-06-22 23:49 UTC (permalink / raw)
  To: Sergey Shtylyov, linux-ide

On 6/17/23 04:45, Sergey Shtylyov wrote:
> Here are 8 patches against the 'for-next' branch of Damien's 'libata.git' repo.
> 
> The libata code still often uses the 'unsigned long' type for the millisecond
> timeouts, while the kernel functions like msecs_to_jiffies() or msleep() only
> take 'unsigned int' parameters for those. I've started fixing the timeout types
> from ata_exec_internal[_sg]() that tripped the Svace static analyzer and posted
> couple patches, promising to post a large continuation series somewhat later...
> in my worst nightmare I couldn't imagine that this would take a whole year! :-(
> 
> Sergey Shtylyov (8):
>   ata: libata: fix parameter type of ata_deadline()
>   ata: libata-core: fix parameter types of ata_wait_register()
>   ata: libata-eh: fix reset timeout type
>   ata: fix debounce timings type
>   ata: libata-scsi: fix timeout type in ata_scsi_park_store()
>   ata: libahci: fix parameter type of ahci_exec_polled_cmd()
>   ata: ahci_xgene: fix parameter types of xgene_ahci_poll_reg_val()
>   ata: sata_sil24: fix parameter type of sil24_exec_polled_cmd()

We could merge patches 1-5 together as core updates, followed by driver patches.

Anyway, looks all OK to me but we are a little too close to the merge window. So
I will apply this once we have 6.5-rc1.

> 
>  drivers/ata/ahci.c          |  2 +-
>  drivers/ata/ahci_qoriq.c    |  2 +-
>  drivers/ata/ahci_xgene.c    |  7 +++----
>  drivers/ata/libahci.c       |  7 ++++---
>  drivers/ata/libata-core.c   |  6 +++---
>  drivers/ata/libata-eh.c     |  6 +++---
>  drivers/ata/libata-sata.c   | 16 ++++++++--------
>  drivers/ata/libata-scsi.c   |  4 ++--
>  drivers/ata/libata-sff.c    |  2 +-
>  drivers/ata/sata_highbank.c |  2 +-
>  drivers/ata/sata_inic162x.c |  2 +-
>  drivers/ata/sata_mv.c       |  2 +-
>  drivers/ata/sata_nv.c       |  2 +-
>  drivers/ata/sata_sil24.c    |  4 ++--
>  include/linux/libata.h      | 24 ++++++++++++------------
>  15 files changed, 44 insertions(+), 44 deletions(-)
> 

-- 
Damien Le Moal
Western Digital Research


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

* Re: [PATCH 0/8] Fix the remaining sloppy timeout typing in libata
  2023-06-22 23:49 ` [PATCH 0/8] Fix the remaining sloppy timeout typing in libata Damien Le Moal
@ 2023-07-06 20:31   ` Sergey Shtylyov
  0 siblings, 0 replies; 14+ messages in thread
From: Sergey Shtylyov @ 2023-07-06 20:31 UTC (permalink / raw)
  To: Damien Le Moal, linux-ide

On 6/23/23 2:49 AM, Damien Le Moal wrote:

>> Here are 8 patches against the 'for-next' branch of Damien's 'libata.git' repo.
>>
>> The libata code still often uses the 'unsigned long' type for the millisecond
>> timeouts, while the kernel functions like msecs_to_jiffies() or msleep() only
>> take 'unsigned int' parameters for those. I've started fixing the timeout types
>> from ata_exec_internal[_sg]() that tripped the Svace static analyzer and posted
>> couple patches, promising to post a large continuation series somewhat later...
>> in my worst nightmare I couldn't imagine that this would take a whole year! :-(
>>
>> Sergey Shtylyov (8):
>>   ata: libata: fix parameter type of ata_deadline()
>>   ata: libata-core: fix parameter types of ata_wait_register()
>>   ata: libata-eh: fix reset timeout type
>>   ata: fix debounce timings type
>>   ata: libata-scsi: fix timeout type in ata_scsi_park_store()
>>   ata: libahci: fix parameter type of ahci_exec_polled_cmd()
>>   ata: ahci_xgene: fix parameter types of xgene_ahci_poll_reg_val()
>>   ata: sata_sil24: fix parameter type of sil24_exec_polled_cmd()
> 
> We could merge patches 1-5 together as core updates, followed by driver patches.

   I'd like to avoid that. Please! :-)

> Anyway, looks all OK to me but we are a little too close to the merge window. So
> I will apply this once we have 6.5-rc1.

   Sigh, even more delaying...
   /me blames his stupidly long illness on December tho...

[...]

MBR, Sergey

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

* Re: [PATCH 0/8] Fix the remaining sloppy timeout typing in libata
  2023-06-16 19:45 [PATCH 0/8] Fix the remaining sloppy timeout typing in libata Sergey Shtylyov
                   ` (8 preceding siblings ...)
  2023-06-22 23:49 ` [PATCH 0/8] Fix the remaining sloppy timeout typing in libata Damien Le Moal
@ 2023-07-17  0:51 ` Damien Le Moal
  2023-07-25 23:36 ` Damien Le Moal
  10 siblings, 0 replies; 14+ messages in thread
From: Damien Le Moal @ 2023-07-17  0:51 UTC (permalink / raw)
  To: Sergey Shtylyov, linux-ide

On 6/17/23 04:45, Sergey Shtylyov wrote:
> Here are 8 patches against the 'for-next' branch of Damien's 'libata.git' repo.
> 
> The libata code still often uses the 'unsigned long' type for the millisecond
> timeouts, while the kernel functions like msecs_to_jiffies() or msleep() only
> take 'unsigned int' parameters for those. I've started fixing the timeout types
> from ata_exec_internal[_sg]() that tripped the Svace static analyzer and posted
> couple patches, promising to post a large continuation series somewhat later...
> in my worst nightmare I couldn't imagine that this would take a whole year! :-(
> 
> Sergey Shtylyov (8):
>   ata: libata: fix parameter type of ata_deadline()
>   ata: libata-core: fix parameter types of ata_wait_register()
>   ata: libata-eh: fix reset timeout type
>   ata: fix debounce timings type
>   ata: libata-scsi: fix timeout type in ata_scsi_park_store()
>   ata: libahci: fix parameter type of ahci_exec_polled_cmd()
>   ata: ahci_xgene: fix parameter types of xgene_ahci_poll_reg_val()
>   ata: sata_sil24: fix parameter type of sil24_exec_polled_cmd()

Sergey,

This does not apply cleanly to for-6.6 branch. Could you rebase and resend please ?

-- 
Damien Le Moal
Western Digital Research


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

* Re: [PATCH 0/8] Fix the remaining sloppy timeout typing in libata
  2023-06-16 19:45 [PATCH 0/8] Fix the remaining sloppy timeout typing in libata Sergey Shtylyov
                   ` (9 preceding siblings ...)
  2023-07-17  0:51 ` Damien Le Moal
@ 2023-07-25 23:36 ` Damien Le Moal
  2023-07-26  8:41   ` Sergei Shtylyov
  10 siblings, 1 reply; 14+ messages in thread
From: Damien Le Moal @ 2023-07-25 23:36 UTC (permalink / raw)
  To: Sergey Shtylyov, linux-ide

On 6/17/23 04:45, Sergey Shtylyov wrote:
> Here are 8 patches against the 'for-next' branch of Damien's 'libata.git' repo.
> 
> The libata code still often uses the 'unsigned long' type for the millisecond
> timeouts, while the kernel functions like msecs_to_jiffies() or msleep() only
> take 'unsigned int' parameters for those. I've started fixing the timeout types
> from ata_exec_internal[_sg]() that tripped the Svace static analyzer and posted
> couple patches, promising to post a large continuation series somewhat later...
> in my worst nightmare I couldn't imagine that this would take a whole year! :-(

Sergey,

Ping ? Are you resending this ?
Need a rebase as this does not apply cleanly.

> 
> Sergey Shtylyov (8):
>   ata: libata: fix parameter type of ata_deadline()
>   ata: libata-core: fix parameter types of ata_wait_register()
>   ata: libata-eh: fix reset timeout type
>   ata: fix debounce timings type
>   ata: libata-scsi: fix timeout type in ata_scsi_park_store()
>   ata: libahci: fix parameter type of ahci_exec_polled_cmd()
>   ata: ahci_xgene: fix parameter types of xgene_ahci_poll_reg_val()
>   ata: sata_sil24: fix parameter type of sil24_exec_polled_cmd()
> 
>  drivers/ata/ahci.c          |  2 +-
>  drivers/ata/ahci_qoriq.c    |  2 +-
>  drivers/ata/ahci_xgene.c    |  7 +++----
>  drivers/ata/libahci.c       |  7 ++++---
>  drivers/ata/libata-core.c   |  6 +++---
>  drivers/ata/libata-eh.c     |  6 +++---
>  drivers/ata/libata-sata.c   | 16 ++++++++--------
>  drivers/ata/libata-scsi.c   |  4 ++--
>  drivers/ata/libata-sff.c    |  2 +-
>  drivers/ata/sata_highbank.c |  2 +-
>  drivers/ata/sata_inic162x.c |  2 +-
>  drivers/ata/sata_mv.c       |  2 +-
>  drivers/ata/sata_nv.c       |  2 +-
>  drivers/ata/sata_sil24.c    |  4 ++--
>  include/linux/libata.h      | 24 ++++++++++++------------
>  15 files changed, 44 insertions(+), 44 deletions(-)
> 

-- 
Damien Le Moal
Western Digital Research


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

* Re: [PATCH 0/8] Fix the remaining sloppy timeout typing in libata
  2023-07-25 23:36 ` Damien Le Moal
@ 2023-07-26  8:41   ` Sergei Shtylyov
  0 siblings, 0 replies; 14+ messages in thread
From: Sergei Shtylyov @ 2023-07-26  8:41 UTC (permalink / raw)
  To: Damien Le Moal, Sergey Shtylyov, linux-ide

On 7/26/23 2:36 AM, Damien Le Moal wrote:
[...]
>> Here are 8 patches against the 'for-next' branch of Damien's 'libata.git' repo.
>>
>> The libata code still often uses the 'unsigned long' type for the millisecond
>> timeouts, while the kernel functions like msecs_to_jiffies() or msleep() only
>> take 'unsigned int' parameters for those. I've started fixing the timeout types
>> from ata_exec_internal[_sg]() that tripped the Svace static analyzer and posted
>> couple patches, promising to post a large continuation series somewhat later...
>> in my worst nightmare I couldn't imagine that this would take a whole year! :-(
> 
> Sergey,
> 
> Ping ? Are you resending this ?
> Need a rebase as this does not apply cleanly.

   I need to find the time for doing this...

>>
>> Sergey Shtylyov (8):
>>   ata: libata: fix parameter type of ata_deadline()
>>   ata: libata-core: fix parameter types of ata_wait_register()
>>   ata: libata-eh: fix reset timeout type
>>   ata: fix debounce timings type
>>   ata: libata-scsi: fix timeout type in ata_scsi_park_store()
>>   ata: libahci: fix parameter type of ahci_exec_polled_cmd()
>>   ata: ahci_xgene: fix parameter types of xgene_ahci_poll_reg_val()
>>   ata: sata_sil24: fix parameter type of sil24_exec_polled_cmd()
>>
>>  drivers/ata/ahci.c          |  2 +-
>>  drivers/ata/ahci_qoriq.c    |  2 +-
>>  drivers/ata/ahci_xgene.c    |  7 +++----
>>  drivers/ata/libahci.c       |  7 ++++---
>>  drivers/ata/libata-core.c   |  6 +++---
>>  drivers/ata/libata-eh.c     |  6 +++---
>>  drivers/ata/libata-sata.c   | 16 ++++++++--------
>>  drivers/ata/libata-scsi.c   |  4 ++--
>>  drivers/ata/libata-sff.c    |  2 +-
>>  drivers/ata/sata_highbank.c |  2 +-
>>  drivers/ata/sata_inic162x.c |  2 +-
>>  drivers/ata/sata_mv.c       |  2 +-
>>  drivers/ata/sata_nv.c       |  2 +-
>>  drivers/ata/sata_sil24.c    |  4 ++--
>>  include/linux/libata.h      | 24 ++++++++++++------------
>>  15 files changed, 44 insertions(+), 44 deletions(-)

MBR, Sergey

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

end of thread, other threads:[~2023-07-26  8:48 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-16 19:45 [PATCH 0/8] Fix the remaining sloppy timeout typing in libata Sergey Shtylyov
2023-06-16 19:46 ` [PATCH 1/8] ata: libata: fix parameter type of ata_deadline() Sergey Shtylyov
2023-06-16 19:46 ` [PATCH 2/8] ata: libata-core: fix parameter types of ata_wait_register() Sergey Shtylyov
2023-06-16 19:46 ` [PATCH 3/8] ata: libata-eh: fix reset timeout type Sergey Shtylyov
2023-06-16 19:46 ` [PATCH 4/8] ata: fix debounce timings type Sergey Shtylyov
2023-06-16 19:46 ` [PATCH 5/8] ata: libata-scsi: fix timeout type in ata_scsi_park_store() Sergey Shtylyov
2023-06-16 19:46 ` [PATCH 6/8] ata: libahci: fix parameter type of ahci_exec_polled_cmd() Sergey Shtylyov
2023-06-16 19:46 ` [PATCH 7/8] ata: ahci_xgene: fix parameter types of xgene_ahci_poll_reg_val() Sergey Shtylyov
2023-06-16 19:46 ` [PATCH 8/8] ata: sata_sil24: fix parameter type of sil24_exec_polled_cmd() Sergey Shtylyov
2023-06-22 23:49 ` [PATCH 0/8] Fix the remaining sloppy timeout typing in libata Damien Le Moal
2023-07-06 20:31   ` Sergey Shtylyov
2023-07-17  0:51 ` Damien Le Moal
2023-07-25 23:36 ` Damien Le Moal
2023-07-26  8:41   ` Sergei Shtylyov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox