2024-05-02 21:00:55

by Wolfram Sang

[permalink] [raw]
Subject: [PATCH 1/2] fpga: socfpga: use 'time_left' variable with wait_for_completion_interruptible_timeout()

There is a confusing pattern in the kernel to use a variable named 'timeout' to
store the result of wait_for_completion_interruptible_timeout() causing patterns like:

timeout = wait_for_completion_interruptible_timeout(...)
if (!timeout) return -ETIMEDOUT;

with all kinds of permutations. Use 'time_left' as a variable to make the code
self explaining.

Fix to the proper variable type 'long' while here.

Signed-off-by: Wolfram Sang <[email protected]>
---
drivers/fpga/socfpga.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/fpga/socfpga.c b/drivers/fpga/socfpga.c
index 723ea0ad3f09..b08b4bb8f650 100644
--- a/drivers/fpga/socfpga.c
+++ b/drivers/fpga/socfpga.c
@@ -301,16 +301,17 @@ static irqreturn_t socfpga_fpga_isr(int irq, void *dev_id)

static int socfpga_fpga_wait_for_config_done(struct socfpga_fpga_priv *priv)
{
- int timeout, ret = 0;
+ int ret = 0;
+ long time_left;

socfpga_fpga_disable_irqs(priv);
init_completion(&priv->status_complete);
socfpga_fpga_enable_irqs(priv, SOCFPGA_FPGMGR_MON_CONF_DONE);

- timeout = wait_for_completion_interruptible_timeout(
+ time_left = wait_for_completion_interruptible_timeout(
&priv->status_complete,
msecs_to_jiffies(10));
- if (timeout == 0)
+ if (time_left == 0)
ret = -ETIMEDOUT;

socfpga_fpga_disable_irqs(priv);
--
2.43.0



2024-06-11 08:17:50

by Xu Yilun

[permalink] [raw]
Subject: Re: [PATCH 1/2] fpga: socfpga: use 'time_left' variable with wait_for_completion_interruptible_timeout()

On Thu, May 02, 2024 at 11:00:36PM +0200, Wolfram Sang wrote:
Sorry for late reply.

First of all, please limit your subject/shortlog/summary within 70
chars.

> There is a confusing pattern in the kernel to use a variable named 'timeout' to

Please make the changelog line wrapped at less than 75 chars.

> store the result of wait_for_completion_interruptible_timeout() causing patterns like:
>
> timeout = wait_for_completion_interruptible_timeout(...)
> if (!timeout) return -ETIMEDOUT;
>
> with all kinds of permutations. Use 'time_left' as a variable to make the code
> self explaining.
>
> Fix to the proper variable type 'long' while here.
>
> Signed-off-by: Wolfram Sang <[email protected]>
> ---
> drivers/fpga/socfpga.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/fpga/socfpga.c b/drivers/fpga/socfpga.c
> index 723ea0ad3f09..b08b4bb8f650 100644
> --- a/drivers/fpga/socfpga.c
> +++ b/drivers/fpga/socfpga.c
> @@ -301,16 +301,17 @@ static irqreturn_t socfpga_fpga_isr(int irq, void *dev_id)
>
> static int socfpga_fpga_wait_for_config_done(struct socfpga_fpga_priv *priv)
> {
> - int timeout, ret = 0;
> + int ret = 0;
> + long time_left;

Please use reverse xmas tree when it is easy to follow.

The code change is good to me.

Thanks,
Yilun

>
> socfpga_fpga_disable_irqs(priv);
> init_completion(&priv->status_complete);
> socfpga_fpga_enable_irqs(priv, SOCFPGA_FPGMGR_MON_CONF_DONE);
>
> - timeout = wait_for_completion_interruptible_timeout(
> + time_left = wait_for_completion_interruptible_timeout(
> &priv->status_complete,
> msecs_to_jiffies(10));
> - if (timeout == 0)
> + if (time_left == 0)
> ret = -ETIMEDOUT;
>
> socfpga_fpga_disable_irqs(priv);
> --
> 2.43.0
>
>