[PATCH v2 3/3] arm: apple: Increase RTKit timeouts
Mark Kettenis
mark.kettenis at xs4all.nl
Tue Jun 14 10:24:59 CEST 2022
> From: Janne Grunau <j at jannau.net>
> Date: Tue, 14 Jun 2022 09:09:09 +0200
>
> Timeouts are not expected to happen and are handled as fatal errors.
> Increase all timeouts to 1 second as defensive measure to avoid relying
> on the timing behaviour of certain firmware versions or configurations.
>
> Signed-off-by: Janne Grunau <j at jannau.net>
Reviewed-by: Mark Kettenis <kettenis at openbsd.org>
Tested-by: Mark Kettenis <kettenis at openbsd.org>
> ---
>
> (no changes since v1)
>
> arch/arm/mach-apple/rtkit.c | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm/mach-apple/rtkit.c b/arch/arm/mach-apple/rtkit.c
> index da7771844230..a550b553b663 100644
> --- a/arch/arm/mach-apple/rtkit.c
> +++ b/arch/arm/mach-apple/rtkit.c
> @@ -52,6 +52,8 @@
> #define APPLE_RTKIT_BUFFER_REQUEST_SIZE GENMASK(51, 44)
> #define APPLE_RTKIT_BUFFER_REQUEST_IOVA GENMASK(41, 0)
>
> +#define TIMEOUT_1SEC_US 1000000
> +
> struct apple_rtkit {
> struct mbox_chan *chan;
> void *cookie;
> @@ -168,7 +170,7 @@ int apple_rtkit_boot(struct apple_rtkit *rtk)
> return ret;
>
> /* Wait for protocol version negotiation message. */
> - ret = mbox_recv(rtk->chan, &msg, 10000);
> + ret = mbox_recv(rtk->chan, &msg, TIMEOUT_1SEC_US);
> if (ret < 0)
> return ret;
>
> @@ -210,7 +212,7 @@ int apple_rtkit_boot(struct apple_rtkit *rtk)
>
> wait_epmap:
> /* Wait for endpoint map message. */
> - ret = mbox_recv(rtk->chan, &msg, 10000);
> + ret = mbox_recv(rtk->chan, &msg, TIMEOUT_1SEC_US);
> if (ret < 0)
> return ret;
>
> @@ -275,7 +277,7 @@ wait_epmap:
>
> pwrstate = APPLE_RTKIT_PWR_STATE_SLEEP;
> while (pwrstate != APPLE_RTKIT_PWR_STATE_ON) {
> - ret = mbox_recv(rtk->chan, &msg, 100000);
> + ret = mbox_recv(rtk->chan, &msg, TIMEOUT_1SEC_US);
> if (ret < 0)
> return ret;
>
> @@ -330,7 +332,7 @@ int apple_rtkit_shutdown(struct apple_rtkit *rtk, int pwrstate)
> if (ret < 0)
> return ret;
>
> - ret = mbox_recv(rtk->chan, &msg, 100000);
> + ret = mbox_recv(rtk->chan, &msg, TIMEOUT_1SEC_US);
> if (ret < 0)
> return ret;
>
> --
> 2.35.1
>
>
More information about the U-Boot
mailing list