2023-02-15 09:30:10

by Christophe JAILLET

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

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 <[email protected]>
---
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);
}
--
2.34.1



2023-02-17 11:21:22

by Marek Behún

[permalink] [raw]
Subject: Re: [PATCH v2] firmware: turris-mox-rwtm: Fix an error handling path in mox_get_board_info()

On Wed, 15 Feb 2023 10:30:02 +0100
Christophe JAILLET <[email protected]> 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 <[email protected]>
> ---
> 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 <[email protected]>

2023-07-11 16:55:09

by Christophe JAILLET

[permalink] [raw]
Subject: Re: [PATCH v2] firmware: turris-mox-rwtm: Fix an error handling path in mox_get_board_info()

Le 17/02/2023 à 12:21, Marek Behún a écrit :
> On Wed, 15 Feb 2023 10:30:02 +0100
> Christophe JAILLET <[email protected]> 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 <[email protected]>
>> ---
>> 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 <[email protected]>
>

Hi,
polite reminder.

CJ

2023-07-12 12:15:08

by Marek Behún

[permalink] [raw]
Subject: Re: [PATCH v2] firmware: turris-mox-rwtm: Fix an error handling path in mox_get_board_info()

Gregory, could you take this patch via mvebu?

On Tue, 11 Jul 2023 18:44:36 +0200
Christophe JAILLET <[email protected]> wrote:

> Le 17/02/2023 à 12:21, Marek Behún a écrit :
> > On Wed, 15 Feb 2023 10:30:02 +0100
> > Christophe JAILLET <[email protected]> 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 <[email protected]>
> >> ---
> >> 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 <[email protected]>
> >
>
> Hi,
> polite reminder.
>
> CJ


2023-07-13 09:07:21

by Gregory CLEMENT

[permalink] [raw]
Subject: Re: [PATCH v2] firmware: turris-mox-rwtm: Fix an error handling path in mox_get_board_info()

Marek Behún <[email protected]> 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 <[email protected]> wrote:
>
>> Le 17/02/2023 à 12:21, Marek Behún a écrit :
>> > On Wed, 15 Feb 2023 10:30:02 +0100
>> > Christophe JAILLET <[email protected]> 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 <[email protected]>
>> >> ---
>> >> 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 <[email protected]>
>> >
>>
>> Hi,
>> polite reminder.
>>
>> CJ
>

--
Gregory Clement, Bootlin
Embedded Linux and Kernel engineering
http://bootlin.com