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) >