Re: [PATCH] HID: intel-thc-hid: Intel-quickspi: Fix some error codes
From: Mark Pearson
Date: Thu Apr 23 2026 - 10:54:46 EST
Hi Dan,
On Thu, Apr 23, 2026, at 3:10 AM, Dan Carpenter wrote:
> 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;
> }
>
> 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
I think this would be throwing away other possible different return values from thc_tic_pio_read?
You'd be losing the -EINTR,-EBUSY, -ETIMEDOUT conditions that might be useful to the upper layers.
Should that block be split into two separate error conditions?
Mark