> -----Original Message-----
> From: Andrew Lunn <[email protected]>
> Sent: Thursday, February 19, 2026 7:27 AM
> To: Arnaud POULIQUEN <[email protected]>
> Cc: Shenwei Wang <[email protected]>; Linus Walleij
> <[email protected]>; Bartosz Golaszewski <[email protected]>; Jonathan Corbet
> <[email protected]>; Rob Herring <[email protected]>; Krzysztof Kozlowski
> <[email protected]>; Conor Dooley <[email protected]>; Bjorn Andersson
> <[email protected]>; Mathieu Poirier <[email protected]>; Frank Li
> <[email protected]>; Sascha Hauer <[email protected]>; Shuah Khan
> <[email protected]>; [email protected]; linux-
> [email protected]; [email protected]; Pengutronix Kernel Team
> <[email protected]>; Fabio Estevam <[email protected]>; Peng Fan
> <[email protected]>; [email protected]; linux-
> [email protected]; [email protected]; linux-arm-
> [email protected]; dl-linux-imx <[email protected]>; Bartosz
> Golaszewski <[email protected]>
> Subject: [EXT] Re: [PATCH v8 3/4] gpio: rpmsg: add generic rpmsg GPIO driver
> 
> > > +   if (sync) {
> > > +           err = wait_for_completion_timeout(&info->cmd_complete,
> > > +                                             
> > > msecs_to_jiffies(RPMSG_TIMEOUT));
> > > +           if (err == 0) {
> > > +                   dev_err(&info->rpdev->dev, "rpmsg_send timeout!\n");
> > > +                   return -ETIMEDOUT;
> >
> > strange condition you return an error if err == 0, for redability use 'ret'
> > variable or simply:
> >
> >               if(!wait_for_completion_timeout(&info->cmd_complete,
> >                                 msecs_to_jiffies(RPMSG_TIMEOUT)) {
> >                       dev_err(&info->rpdev->dev, "rpmsg_send timeout!\n");
> >                       return -ETIMEDOUT;
> >               }
> 
> This will be from a comment i made. It appears that
> do_wait_for_common() can return -ERESTARTSYS. I assume that should be
> returned to user space?
> 

It looks like there might be a bit of confusion around what 
wait_for_completion_timeout() 
actually returns. That function never returns -ERESTARTSYS. Instead, its 
behavior is pretty 
simple:

- 0 means the wait timed out
- A positive value means the completion happened (the value is just the 
remaining jiffies)

So the driver returns the timeout error, and the upper application can decide 
how it wants
to handle that situation, for example restart or ignore.

Thanks,
Shenwei

>         Andrew


Reply via email to