Re: [PATCH] HID: amd_sfh: return an error when response wait times out

Basavaraj Natikar <[email protected]> Mon, 3 Aug 2026 23:06:48 +0530
Newsgroups org.kernel.vger.linux-input,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On 6/24/2026 8:05 PM, Pengpeng Hou wrote:
> [You don't often get email from [email protected]. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]
>
> amdtp_wait_for_response() waits for request_done before completing a
> report request. wait_event_interruptible_timeout() returns 0 when the
> wait expires, but the current code treats only negative values as errors
> and returns success on timeout.
>
> Return -ETIMEDOUT when the response wait expires while preserving the
> existing success path when the response has already been observed.
>
> Signed-off-by: Pengpeng Hou <[email protected]>
> ---
>   drivers/hid/amd-sfh-hid/amd_sfh_hid.c | 15 ++++++++-------
>   1 file changed, 8 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/hid/amd-sfh-hid/amd_sfh_hid.c b/drivers/hid/amd-sfh-hid/amd_sfh_hid.c
> index b04f675d4..8f88f965f 100644
> --- a/drivers/hid/amd-sfh-hid/amd_sfh_hid.c
> +++ b/drivers/hid/amd-sfh-hid/amd_sfh_hid.c
> @@ -87,16 +87,17 @@ static int amdtp_wait_for_response(struct hid_device *hid)
>                          break;
>          }
>
> -       if (!cli_data->request_done[i])
> +       if (!cli_data->request_done[i]) {
>                  ret = wait_event_interruptible_timeout(hid_data->hid_wait,
>                                                         cli_data->request_done[i],
>                                                         msecs_to_jiffies(AMD_SFH_RESPONSE_TIMEOUT));
> -       if (ret == -ERESTARTSYS)
> -               return -ERESTARTSYS;
> -       else if (ret < 0)
> -               return -ETIMEDOUT;
> -       else
> -               return 0;
> +               if (ret == -ERESTARTSYS)
> +                       return -ERESTARTSYS;
> +               if (ret <= 0)
> +                       return -ETIMEDOUT;
> +       }
> +
> +       return 0;
>   }

Acked-by: Basavaraj Natikar<[email protected]>

Thanks,
--
Basavaraj

>
>   void amdtp_hid_wakeup(struct hid_device *hid)
> --
> 2.50.1 (Apple Git-155)
>