[v2] firmware: turris-mox-rwtm: Fix an error handling path in mox_get_board_info()

Message ID fb3a73fd378582bf02e6c5eeabb61d3a3662cbdc.1676453328.git.christophe.jaillet@wanadoo.fr
State New
Headers
Series [v2] firmware: turris-mox-rwtm: Fix an error handling path in mox_get_board_info() |

Commit Message

Christophe JAILLET Feb. 15, 2023, 9:30 a.m. UTC
  wait_for_completion_timeout() returns 0 if timed out, and positive (at
least 1, or number of jiffies left till timeout) if completed.

In case of timeout, return -ETIMEDOUT.

Fixes: 389711b37493 ("firmware: Add Turris Mox rWTM firmware driver")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
Compile tested only.

v2:
   - Fix some other wait_for_completion_timeout() calls

---
 drivers/firmware/turris-mox-rwtm.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
  

Comments

Marek Behún Feb. 17, 2023, 11:21 a.m. UTC | #1
On Wed, 15 Feb 2023 10:30:02 +0100
Christophe JAILLET <christophe.jaillet@wanadoo.fr> wrote:

> wait_for_completion_timeout() returns 0 if timed out, and positive (at
> least 1, or number of jiffies left till timeout) if completed.
> 
> In case of timeout, return -ETIMEDOUT.
> 
> Fixes: 389711b37493 ("firmware: Add Turris Mox rWTM firmware driver")
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
> ---
> Compile tested only.
> 
> v2:
>    - Fix some other wait_for_completion_timeout() calls
> 
> ---
>  drivers/firmware/turris-mox-rwtm.c | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/firmware/turris-mox-rwtm.c b/drivers/firmware/turris-mox-rwtm.c
> index 6ea5789a89e2..d6fc37ba897d 100644
> --- a/drivers/firmware/turris-mox-rwtm.c
> +++ b/drivers/firmware/turris-mox-rwtm.c
> @@ -200,8 +200,8 @@ static int mox_get_board_info(struct mox_rwtm *rwtm)
>  		return ret;
>  
>  	ret = wait_for_completion_timeout(&rwtm->cmd_done, HZ / 2);
> -	if (ret < 0)
> -		return ret;
> +	if (ret == 0)
> +		return -ETIMEDOUT;
>  
>  	ret = mox_get_status(MBOX_CMD_BOARD_INFO, reply->retval);
>  	if (ret == -ENODATA) {
> @@ -236,8 +236,8 @@ static int mox_get_board_info(struct mox_rwtm *rwtm)
>  		return ret;
>  
>  	ret = wait_for_completion_timeout(&rwtm->cmd_done, HZ / 2);
> -	if (ret < 0)
> -		return ret;
> +	if (ret == 0)
> +		return -ETIMEDOUT;
>  
>  	ret = mox_get_status(MBOX_CMD_ECDSA_PUB_KEY, reply->retval);
>  	if (ret == -ENODATA) {
> @@ -275,8 +275,8 @@ static int check_get_random_support(struct mox_rwtm *rwtm)
>  		return ret;
>  
>  	ret = wait_for_completion_timeout(&rwtm->cmd_done, HZ / 2);
> -	if (ret < 0)
> -		return ret;
> +	if (ret == 0)
> +		return -ETIMEDOUT;
>  
>  	return mox_get_status(MBOX_CMD_GET_RANDOM, rwtm->reply.retval);
>  }

Reviewed-by: Marek Behún <kabel@kernel.org>
  
Christophe JAILLET July 11, 2023, 4:44 p.m. UTC | #2
Le 17/02/2023 à 12:21, Marek Behún a écrit :
> On Wed, 15 Feb 2023 10:30:02 +0100
> Christophe JAILLET <christophe.jaillet@wanadoo.fr> wrote:
> 
>> wait_for_completion_timeout() returns 0 if timed out, and positive (at
>> least 1, or number of jiffies left till timeout) if completed.
>>
>> In case of timeout, return -ETIMEDOUT.
>>
>> Fixes: 389711b37493 ("firmware: Add Turris Mox rWTM firmware driver")
>> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
>> ---
>> Compile tested only.
>>
>> v2:
>>     - Fix some other wait_for_completion_timeout() calls
>>
>> ---
>>   drivers/firmware/turris-mox-rwtm.c | 12 ++++++------
>>   1 file changed, 6 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/firmware/turris-mox-rwtm.c b/drivers/firmware/turris-mox-rwtm.c
>> index 6ea5789a89e2..d6fc37ba897d 100644
>> --- a/drivers/firmware/turris-mox-rwtm.c
>> +++ b/drivers/firmware/turris-mox-rwtm.c
>> @@ -200,8 +200,8 @@ static int mox_get_board_info(struct mox_rwtm *rwtm)
>>   		return ret;
>>   
>>   	ret = wait_for_completion_timeout(&rwtm->cmd_done, HZ / 2);
>> -	if (ret < 0)
>> -		return ret;
>> +	if (ret == 0)
>> +		return -ETIMEDOUT;
>>   
>>   	ret = mox_get_status(MBOX_CMD_BOARD_INFO, reply->retval);
>>   	if (ret == -ENODATA) {
>> @@ -236,8 +236,8 @@ static int mox_get_board_info(struct mox_rwtm *rwtm)
>>   		return ret;
>>   
>>   	ret = wait_for_completion_timeout(&rwtm->cmd_done, HZ / 2);
>> -	if (ret < 0)
>> -		return ret;
>> +	if (ret == 0)
>> +		return -ETIMEDOUT;
>>   
>>   	ret = mox_get_status(MBOX_CMD_ECDSA_PUB_KEY, reply->retval);
>>   	if (ret == -ENODATA) {
>> @@ -275,8 +275,8 @@ static int check_get_random_support(struct mox_rwtm *rwtm)
>>   		return ret;
>>   
>>   	ret = wait_for_completion_timeout(&rwtm->cmd_done, HZ / 2);
>> -	if (ret < 0)
>> -		return ret;
>> +	if (ret == 0)
>> +		return -ETIMEDOUT;
>>   
>>   	return mox_get_status(MBOX_CMD_GET_RANDOM, rwtm->reply.retval);
>>   }
> 
> Reviewed-by: Marek Behún <kabel@kernel.org>
> 

Hi,
polite reminder.

CJ
  
Marek Behún July 12, 2023, 11:16 a.m. UTC | #3
Gregory, could you take this patch via mvebu?

On Tue, 11 Jul 2023 18:44:36 +0200
Christophe JAILLET <christophe.jaillet@wanadoo.fr> wrote:

> Le 17/02/2023 à 12:21, Marek Behún a écrit :
> > On Wed, 15 Feb 2023 10:30:02 +0100
> > Christophe JAILLET <christophe.jaillet@wanadoo.fr> wrote:
> >   
> >> wait_for_completion_timeout() returns 0 if timed out, and positive (at
> >> least 1, or number of jiffies left till timeout) if completed.
> >>
> >> In case of timeout, return -ETIMEDOUT.
> >>
> >> Fixes: 389711b37493 ("firmware: Add Turris Mox rWTM firmware driver")
> >> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
> >> ---
> >> Compile tested only.
> >>
> >> v2:
> >>     - Fix some other wait_for_completion_timeout() calls
> >>
> >> ---
> >>   drivers/firmware/turris-mox-rwtm.c | 12 ++++++------
> >>   1 file changed, 6 insertions(+), 6 deletions(-)
> >>
> >> diff --git a/drivers/firmware/turris-mox-rwtm.c b/drivers/firmware/turris-mox-rwtm.c
> >> index 6ea5789a89e2..d6fc37ba897d 100644
> >> --- a/drivers/firmware/turris-mox-rwtm.c
> >> +++ b/drivers/firmware/turris-mox-rwtm.c
> >> @@ -200,8 +200,8 @@ static int mox_get_board_info(struct mox_rwtm *rwtm)
> >>   		return ret;
> >>   
> >>   	ret = wait_for_completion_timeout(&rwtm->cmd_done, HZ / 2);
> >> -	if (ret < 0)
> >> -		return ret;
> >> +	if (ret == 0)
> >> +		return -ETIMEDOUT;
> >>   
> >>   	ret = mox_get_status(MBOX_CMD_BOARD_INFO, reply->retval);
> >>   	if (ret == -ENODATA) {
> >> @@ -236,8 +236,8 @@ static int mox_get_board_info(struct mox_rwtm *rwtm)
> >>   		return ret;
> >>   
> >>   	ret = wait_for_completion_timeout(&rwtm->cmd_done, HZ / 2);
> >> -	if (ret < 0)
> >> -		return ret;
> >> +	if (ret == 0)
> >> +		return -ETIMEDOUT;
> >>   
> >>   	ret = mox_get_status(MBOX_CMD_ECDSA_PUB_KEY, reply->retval);
> >>   	if (ret == -ENODATA) {
> >> @@ -275,8 +275,8 @@ static int check_get_random_support(struct mox_rwtm *rwtm)
> >>   		return ret;
> >>   
> >>   	ret = wait_for_completion_timeout(&rwtm->cmd_done, HZ / 2);
> >> -	if (ret < 0)
> >> -		return ret;
> >> +	if (ret == 0)
> >> +		return -ETIMEDOUT;
> >>   
> >>   	return mox_get_status(MBOX_CMD_GET_RANDOM, rwtm->reply.retval);
> >>   }  
> > 
> > Reviewed-by: Marek Behún <kabel@kernel.org>
> >   
> 
> Hi,
> polite reminder.
> 
> CJ
  
Gregory CLEMENT July 13, 2023, 8:56 a.m. UTC | #4
Marek Behún <kabel@kernel.org> writes:

> Gregory, could you take this patch via mvebu?


Yes sure, actually I was not in CC of this series and I don't follow
linux-kernel or kernel-janitors mailing lists. So thanks to having
pointing me the thread.

Applied on mvebu/drivers

Thanks,

Gregory


>
> On Tue, 11 Jul 2023 18:44:36 +0200
> Christophe JAILLET <christophe.jaillet@wanadoo.fr> wrote:
>
>> Le 17/02/2023 à 12:21, Marek Behún a écrit :
>> > On Wed, 15 Feb 2023 10:30:02 +0100
>> > Christophe JAILLET <christophe.jaillet@wanadoo.fr> wrote:
>> >   
>> >> wait_for_completion_timeout() returns 0 if timed out, and positive (at
>> >> least 1, or number of jiffies left till timeout) if completed.
>> >>
>> >> In case of timeout, return -ETIMEDOUT.
>> >>
>> >> Fixes: 389711b37493 ("firmware: Add Turris Mox rWTM firmware driver")
>> >> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
>> >> ---
>> >> Compile tested only.
>> >>
>> >> v2:
>> >>     - Fix some other wait_for_completion_timeout() calls
>> >>
>> >> ---
>> >>   drivers/firmware/turris-mox-rwtm.c | 12 ++++++------
>> >>   1 file changed, 6 insertions(+), 6 deletions(-)
>> >>
>> >> diff --git a/drivers/firmware/turris-mox-rwtm.c b/drivers/firmware/turris-mox-rwtm.c
>> >> index 6ea5789a89e2..d6fc37ba897d 100644
>> >> --- a/drivers/firmware/turris-mox-rwtm.c
>> >> +++ b/drivers/firmware/turris-mox-rwtm.c
>> >> @@ -200,8 +200,8 @@ static int mox_get_board_info(struct mox_rwtm *rwtm)
>> >>   		return ret;
>> >>   
>> >>   	ret = wait_for_completion_timeout(&rwtm->cmd_done, HZ / 2);
>> >> -	if (ret < 0)
>> >> -		return ret;
>> >> +	if (ret == 0)
>> >> +		return -ETIMEDOUT;
>> >>   
>> >>   	ret = mox_get_status(MBOX_CMD_BOARD_INFO, reply->retval);
>> >>   	if (ret == -ENODATA) {
>> >> @@ -236,8 +236,8 @@ static int mox_get_board_info(struct mox_rwtm *rwtm)
>> >>   		return ret;
>> >>   
>> >>   	ret = wait_for_completion_timeout(&rwtm->cmd_done, HZ / 2);
>> >> -	if (ret < 0)
>> >> -		return ret;
>> >> +	if (ret == 0)
>> >> +		return -ETIMEDOUT;
>> >>   
>> >>   	ret = mox_get_status(MBOX_CMD_ECDSA_PUB_KEY, reply->retval);
>> >>   	if (ret == -ENODATA) {
>> >> @@ -275,8 +275,8 @@ static int check_get_random_support(struct mox_rwtm *rwtm)
>> >>   		return ret;
>> >>   
>> >>   	ret = wait_for_completion_timeout(&rwtm->cmd_done, HZ / 2);
>> >> -	if (ret < 0)
>> >> -		return ret;
>> >> +	if (ret == 0)
>> >> +		return -ETIMEDOUT;
>> >>   
>> >>   	return mox_get_status(MBOX_CMD_GET_RANDOM, rwtm->reply.retval);
>> >>   }  
>> > 
>> > Reviewed-by: Marek Behún <kabel@kernel.org>
>> >   
>> 
>> Hi,
>> polite reminder.
>> 
>> CJ
>
  

Patch

diff --git a/drivers/firmware/turris-mox-rwtm.c b/drivers/firmware/turris-mox-rwtm.c
index 6ea5789a89e2..d6fc37ba897d 100644
--- a/drivers/firmware/turris-mox-rwtm.c
+++ b/drivers/firmware/turris-mox-rwtm.c
@@ -200,8 +200,8 @@  static int mox_get_board_info(struct mox_rwtm *rwtm)
 		return ret;
 
 	ret = wait_for_completion_timeout(&rwtm->cmd_done, HZ / 2);
-	if (ret < 0)
-		return ret;
+	if (ret == 0)
+		return -ETIMEDOUT;
 
 	ret = mox_get_status(MBOX_CMD_BOARD_INFO, reply->retval);
 	if (ret == -ENODATA) {
@@ -236,8 +236,8 @@  static int mox_get_board_info(struct mox_rwtm *rwtm)
 		return ret;
 
 	ret = wait_for_completion_timeout(&rwtm->cmd_done, HZ / 2);
-	if (ret < 0)
-		return ret;
+	if (ret == 0)
+		return -ETIMEDOUT;
 
 	ret = mox_get_status(MBOX_CMD_ECDSA_PUB_KEY, reply->retval);
 	if (ret == -ENODATA) {
@@ -275,8 +275,8 @@  static int check_get_random_support(struct mox_rwtm *rwtm)
 		return ret;
 
 	ret = wait_for_completion_timeout(&rwtm->cmd_done, HZ / 2);
-	if (ret < 0)
-		return ret;
+	if (ret == 0)
+		return -ETIMEDOUT;
 
 	return mox_get_status(MBOX_CMD_GET_RANDOM, rwtm->reply.retval);
 }