All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] Fix sloppy typing in the fast drain logic
@ 2022-06-16 20:51 Sergey Shtylyov
  2022-06-16 20:51 ` [PATCH 1/2] ata: libata-eh: fix sloppy result type of ata_eh_nr_in_flight() Sergey Shtylyov
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Sergey Shtylyov @ 2022-06-16 20:51 UTC (permalink / raw)
  To: Damien Le Moal, linux-ide

Here are 2 patches against the 'for-next' branch of Damien Le Moal's
'libata.git' repo.
The libata's fast drain logic unfortunately boasts of some sloppy typing --
unify it by using *unsigned int* everyhere...

Sergey Shtylyov (2):
  ata: libata-eh: fix sloppy result type of ata_eh_nr_in_flight()
  ata: make ata_port::fastdrain_cnt *unsigned int*

 drivers/ata/libata-eh.c | 8 ++++----
 include/linux/libata.h  | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

-- 
2.26.3

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

* [PATCH 1/2] ata: libata-eh: fix sloppy result type of ata_eh_nr_in_flight()
  2022-06-16 20:51 [PATCH 0/2] Fix sloppy typing in the fast drain logic Sergey Shtylyov
@ 2022-06-16 20:51 ` Sergey Shtylyov
  2022-06-17 18:16   ` Sergey Shtylyov
  2022-06-16 20:51 ` [PATCH 2/2] ata: make ata_port::fastdrain_cnt *unsigned int* Sergey Shtylyov
  2022-06-17  7:48 ` [PATCH 0/2] Fix sloppy typing in the fast drain logic Damien Le Moal
  2 siblings, 1 reply; 6+ messages in thread
From: Sergey Shtylyov @ 2022-06-16 20:51 UTC (permalink / raw)
  To: Damien Le Moal, linux-ide

ata_eh_nr_in_flight() counts the # of the active tagged commands and thus
cannot return a negative value but the result type is nevertheless *int*;
switching it to *unsigned int* (along with the local variables receiving
the function's result) helps avoiding the sign extension instructions when
comparing with or assigning to *unsigned long *ata_port::fastdrain_cnt and
thus results in a more compact 64-bit code...

Found by Linux Verification Center (linuxtesting.org) with the SVACE static
analysis tool.

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

diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c
index 3307ed45fe4d..25586e16692d 100644
--- a/drivers/ata/libata-eh.c
+++ b/drivers/ata/libata-eh.c
@@ -802,11 +802,11 @@ void ata_port_wait_eh(struct ata_port *ap)
 }
 EXPORT_SYMBOL_GPL(ata_port_wait_eh);
 
-static int ata_eh_nr_in_flight(struct ata_port *ap)
+static unsigned int ata_eh_nr_in_flight(struct ata_port *ap)
 {
 	struct ata_queued_cmd *qc;
 	unsigned int tag;
-	int nr = 0;
+	unsigned int nr = 0;
 
 	/* count only non-internal commands */
 	ata_qc_for_each(ap, qc, tag) {
@@ -821,7 +821,7 @@ void ata_eh_fastdrain_timerfn(struct timer_list *t)
 {
 	struct ata_port *ap = from_timer(ap, t, fastdrain_timer);
 	unsigned long flags;
-	int cnt;
+	unsigned int cnt;
 
 	spin_lock_irqsave(ap->lock, flags);
 
@@ -870,7 +870,7 @@ void ata_eh_fastdrain_timerfn(struct timer_list *t)
  */
 static void ata_eh_set_pending(struct ata_port *ap, int fastdrain)
 {
-	int cnt;
+	unsigned int cnt;
 
 	/* already scheduled? */
 	if (ap->pflags & ATA_PFLAG_EH_PENDING)
-- 
2.26.3

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

* [PATCH 2/2] ata: make ata_port::fastdrain_cnt *unsigned int*
  2022-06-16 20:51 [PATCH 0/2] Fix sloppy typing in the fast drain logic Sergey Shtylyov
  2022-06-16 20:51 ` [PATCH 1/2] ata: libata-eh: fix sloppy result type of ata_eh_nr_in_flight() Sergey Shtylyov
@ 2022-06-16 20:51 ` Sergey Shtylyov
  2022-06-17  7:48 ` [PATCH 0/2] Fix sloppy typing in the fast drain logic Damien Le Moal
  2 siblings, 0 replies; 6+ messages in thread
From: Sergey Shtylyov @ 2022-06-16 20:51 UTC (permalink / raw)
  To: Damien Le Moal, linux-ide

*unsigned long* ata_port::fastdrain_cnt (64-bit value in a 64-bit kernel)
is always assigned from the 32-bit *unsigned int* variables, thus could
also be made just *unsigned int*...

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 0f2a59c9c735..d214aa988168 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -850,7 +850,7 @@ struct ata_port {
 	enum ata_lpm_policy	target_lpm_policy;
 
 	struct timer_list	fastdrain_timer;
-	unsigned long		fastdrain_cnt;
+	unsigned int		fastdrain_cnt;
 
 	async_cookie_t		cookie;
 
-- 
2.26.3

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

* Re: [PATCH 0/2] Fix sloppy typing in the fast drain logic
  2022-06-16 20:51 [PATCH 0/2] Fix sloppy typing in the fast drain logic Sergey Shtylyov
  2022-06-16 20:51 ` [PATCH 1/2] ata: libata-eh: fix sloppy result type of ata_eh_nr_in_flight() Sergey Shtylyov
  2022-06-16 20:51 ` [PATCH 2/2] ata: make ata_port::fastdrain_cnt *unsigned int* Sergey Shtylyov
@ 2022-06-17  7:48 ` Damien Le Moal
  2 siblings, 0 replies; 6+ messages in thread
From: Damien Le Moal @ 2022-06-17  7:48 UTC (permalink / raw)
  To: Sergey Shtylyov, linux-ide

On 6/17/22 05:51, Sergey Shtylyov wrote:
> Here are 2 patches against the 'for-next' branch of Damien Le Moal's
> 'libata.git' repo.
> The libata's fast drain logic unfortunately boasts of some sloppy typing --
> unify it by using *unsigned int* everyhere...
> 
> Sergey Shtylyov (2):
>   ata: libata-eh: fix sloppy result type of ata_eh_nr_in_flight()
>   ata: make ata_port::fastdrain_cnt *unsigned int*
> 
>  drivers/ata/libata-eh.c | 8 ++++----
>  include/linux/libata.h  | 2 +-
>  2 files changed, 5 insertions(+), 5 deletions(-)
> 

Applied to for-5.20. Thanks !

-- 
Damien Le Moal
Western Digital Research

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

* Re: [PATCH 1/2] ata: libata-eh: fix sloppy result type of ata_eh_nr_in_flight()
  2022-06-16 20:51 ` [PATCH 1/2] ata: libata-eh: fix sloppy result type of ata_eh_nr_in_flight() Sergey Shtylyov
@ 2022-06-17 18:16   ` Sergey Shtylyov
  2022-06-19 23:15     ` Damien Le Moal
  0 siblings, 1 reply; 6+ messages in thread
From: Sergey Shtylyov @ 2022-06-17 18:16 UTC (permalink / raw)
  To: Damien Le Moal, linux-ide

On 6/16/22 11:51 PM, Sergey Shtylyov wrote:

> ata_eh_nr_in_flight() counts the # of the active tagged commands and thus
> cannot return a negative value but the result type is nevertheless *int*;
> switching it to *unsigned int* (along with the local variables receiving
> the function's result) helps avoiding the sign extension instructions when
> comparing with or assigning to *unsigned long *ata_port::fastdrain_cnt and

   Grr, a typo! Should have been *unsigned long* ata_port::fastdrain_cnt...
Damien, coyld you please fix it?

> thus results in a more compact 64-bit code...
> 
> Found by Linux Verification Center (linuxtesting.org) with the SVACE static
> analysis tool.
> 
> Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
[...]

MBR, Sergey

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

* Re: [PATCH 1/2] ata: libata-eh: fix sloppy result type of ata_eh_nr_in_flight()
  2022-06-17 18:16   ` Sergey Shtylyov
@ 2022-06-19 23:15     ` Damien Le Moal
  0 siblings, 0 replies; 6+ messages in thread
From: Damien Le Moal @ 2022-06-19 23:15 UTC (permalink / raw)
  To: Sergey Shtylyov, linux-ide

On 6/18/22 03:16, Sergey Shtylyov wrote:
> On 6/16/22 11:51 PM, Sergey Shtylyov wrote:
> 
>> ata_eh_nr_in_flight() counts the # of the active tagged commands and thus
>> cannot return a negative value but the result type is nevertheless *int*;
>> switching it to *unsigned int* (along with the local variables receiving
>> the function's result) helps avoiding the sign extension instructions when
>> comparing with or assigning to *unsigned long *ata_port::fastdrain_cnt and
> 
>    Grr, a typo! Should have been *unsigned long* ata_port::fastdrain_cnt...
> Damien, coyld you please fix it?

OK. Note: please stop using markdown stuff like *xxx*. That is not useful
and that will avoid this kind of typos.

> 
>> thus results in a more compact 64-bit code...
>>
>> Found by Linux Verification Center (linuxtesting.org) with the SVACE static
>> analysis tool.
>>
>> Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
> [...]
> 
> MBR, Sergey


-- 
Damien Le Moal
Western Digital Research

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

end of thread, other threads:[~2022-06-19 23:15 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-16 20:51 [PATCH 0/2] Fix sloppy typing in the fast drain logic Sergey Shtylyov
2022-06-16 20:51 ` [PATCH 1/2] ata: libata-eh: fix sloppy result type of ata_eh_nr_in_flight() Sergey Shtylyov
2022-06-17 18:16   ` Sergey Shtylyov
2022-06-19 23:15     ` Damien Le Moal
2022-06-16 20:51 ` [PATCH 2/2] ata: make ata_port::fastdrain_cnt *unsigned int* Sergey Shtylyov
2022-06-17  7:48 ` [PATCH 0/2] Fix sloppy typing in the fast drain logic Damien Le Moal

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.