> From: Janne Grunau <j...@jannau.net> > Date: Sun, 12 Jun 2022 18:00:29 +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...@jannau.net>
Reviewed-by: Mark Kettenis <kette...@openbsd.org> Tested-by: Mark Kettenis <kette...@openbsd.org> > --- > 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 > >