RE: [PATCH] HID: intel-thc-hid: Intel-quickspi: Fix some error codes

From: Xu, Even

Date: Thu Apr 23 2026 - 20:53:39 EST




> -----Original Message-----
> From: Dan Carpenter <error27@xxxxxxxxx>
> Sent: Thursday, April 23, 2026 3:10 PM
> To: Xu, Even <even.xu@xxxxxxxxx>
> Cc: Sun, Xinpeng <xinpeng.sun@xxxxxxxxx>; Jiri Kosina <jikos@xxxxxxxxxx>;
> Benjamin Tissoires <bentiss@xxxxxxxxxx>; Mark Pearson <mpearson-
> lenovo@xxxxxxxxx>; Srinivas Pandruvada
> <srinivas.pandruvada@xxxxxxxxxxxxxxx>; linux-input@xxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx; kernel-janitors@xxxxxxxxxxxxxxx
> Subject: [PATCH] HID: intel-thc-hid: Intel-quickspi: Fix some error codes
>
> If we have a partial read that is supposed to be treated as failure but in this code
> we forgot to set the error code. Return -EINVAL.
>
> Fixes: 9d8d51735a3a ("HID: intel-thc-hid: intel-quickspi: Add HIDSPI protocol
> implementation")
> Signed-off-by: Dan Carpenter <error27@xxxxxxxxx>
> ---
> drivers/hid/intel-thc-hid/intel-quickspi/quickspi-protocol.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/hid/intel-thc-hid/intel-quickspi/quickspi-protocol.c
> b/drivers/hid/intel-thc-hid/intel-quickspi/quickspi-protocol.c
> index 16f780bc879b..cb19057f1191 100644
> --- a/drivers/hid/intel-thc-hid/intel-quickspi/quickspi-protocol.c
> +++ b/drivers/hid/intel-thc-hid/intel-quickspi/quickspi-protocol.c
> @@ -94,7 +94,7 @@ static int quickspi_get_device_descriptor(struct
> quickspi_device *qsdev)
> dev_err_once(qsdev->dev, "Read DEVICE_DESCRIPTOR failed,
> ret = %d\n", ret);
> dev_err_once(qsdev->dev, "DEVICE_DESCRIPTOR expected len
> = %u, actual read = %u\n",
> input_len, read_len);
> - return ret;
> + return ret ?: -EINVAL;
> }

Good capture! If ret > 0, but read length != expected length, the error also needs to be thrown.
Thanks for the patch!

Reviewed-by: Even Xu <even.xu@xxxxxxxxx>

>
> input_rep_type = ((struct input_report_body_header *)read_buf)-
> >input_report_type; @@ -318,7 +318,7 @@ int reset_tic(struct quickspi_device
> *qsdev)
> dev_err_once(qsdev->dev, "Read RESET_RESPONSE body failed,
> ret = %d\n", ret);
> dev_err_once(qsdev->dev, "RESET_RESPONSE body expected
> len = %u, actual = %u\n",
> read_len, actual_read_len);
> - return ret;
> + return ret ?: -EINVAL;
> }
>
> input_rep_type = FIELD_GET(HIDSPI_IN_REP_BDY_HDR_REP_TYPE,
> reset_response);
> --
> 2.53.0