Message ID | c50640665f091a04086e5092cf50f73f2055107a.1727980825.git.christophe.jaillet@wanadoo.fr (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | iio: hid-sensors: Fix an error handling path in _hid_sensor_set_report_latency() | expand |
On Thu, 3 Oct 2024 20:41:12 +0200 Christophe JAILLET <christophe.jaillet@wanadoo.fr> wrote: > If hid_sensor_set_report_latency() fails, the error code should be returned > instead of a value likely to be interpreted as 'success'. > > Fixes: 138bc7969c24 ("iio: hid-sensor-hub: Implement batch mode") > Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> > --- > This patch is speculative. > > The code just *looks* wrong to me. No strong opinion, if it is done on > purpose or not. Agreed it smells :) But I'd like more eyes on this before I take the fix as maybe there is something subtle going on. J > --- > drivers/iio/common/hid-sensors/hid-sensor-trigger.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c > index ad8910e6ad59..abb09fefc792 100644 > --- a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c > +++ b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c > @@ -32,7 +32,7 @@ static ssize_t _hid_sensor_set_report_latency(struct device *dev, > latency = integer * 1000 + fract / 1000; > ret = hid_sensor_set_report_latency(attrb, latency); > if (ret < 0) > - return len; > + return ret; > > attrb->latency_ms = hid_sensor_get_report_latency(attrb); >
On Sat, 2024-10-05 at 19:06 +0100, Jonathan Cameron wrote: > On Thu, 3 Oct 2024 20:41:12 +0200 > Christophe JAILLET <christophe.jaillet@wanadoo.fr> wrote: > > > If hid_sensor_set_report_latency() fails, the error code should be > > returned > > instead of a value likely to be interpreted as 'success'. > > > > Fixes: 138bc7969c24 ("iio: hid-sensor-hub: Implement batch mode") > > Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> > > --- > > This patch is speculative. > > > > The code just *looks* wrong to me. No strong opinion, if it is done > > on > > purpose or not. > Agreed it smells :) But I'd like more eyes on this before I take the > fix > as maybe there is something subtle going on. > The original HID sensor spec HUTRR39 didn't have this property (usage ID 0x31B). This was added by update "HUTRR59" to support batch mode to improve power. This attribute will not be present on non batch mode supported system and on supported system this attribute writes will not fail unless some hardware error. Returning error is fine. Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Thanks, Srinivas > J > > --- > > drivers/iio/common/hid-sensors/hid-sensor-trigger.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c > > b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c > > index ad8910e6ad59..abb09fefc792 100644 > > --- a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c > > +++ b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c > > @@ -32,7 +32,7 @@ static ssize_t > > _hid_sensor_set_report_latency(struct device *dev, > > latency = integer * 1000 + fract / 1000; > > ret = hid_sensor_set_report_latency(attrb, latency); > > if (ret < 0) > > - return len; > > + return ret; > > > > attrb->latency_ms = hid_sensor_get_report_latency(attrb); > > >
On Tue, 08 Oct 2024 10:21:50 -0700 srinivas pandruvada <srinivas.pandruvada@linux.intel.com> wrote: > On Sat, 2024-10-05 at 19:06 +0100, Jonathan Cameron wrote: > > On Thu, 3 Oct 2024 20:41:12 +0200 > > Christophe JAILLET <christophe.jaillet@wanadoo.fr> wrote: > > > > > If hid_sensor_set_report_latency() fails, the error code should be > > > returned > > > instead of a value likely to be interpreted as 'success'. > > > > > > Fixes: 138bc7969c24 ("iio: hid-sensor-hub: Implement batch mode") > > > Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> > > > --- > > > This patch is speculative. > > > > > > The code just *looks* wrong to me. No strong opinion, if it is done > > > on > > > purpose or not. > > Agreed it smells :) But I'd like more eyes on this before I take the > > fix > > as maybe there is something subtle going on. > > > The original HID sensor spec HUTRR39 didn't have this property (usage > ID 0x31B). This was added by update "HUTRR59" to support batch mode to > improve power. > This attribute will not be present on non batch mode supported system > and on supported system this attribute writes will not fail unless some > hardware error. > > Returning error is fine. > > Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> > > Thanks, > Srinivas > Thanks and applied to the fixes-togreg branch of iio.git + marked for stable. Jonathan > > > > > > J > > > --- > > > drivers/iio/common/hid-sensors/hid-sensor-trigger.c | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c > > > b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c > > > index ad8910e6ad59..abb09fefc792 100644 > > > --- a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c > > > +++ b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c > > > @@ -32,7 +32,7 @@ static ssize_t > > > _hid_sensor_set_report_latency(struct device *dev, > > > latency = integer * 1000 + fract / 1000; > > > ret = hid_sensor_set_report_latency(attrb, latency); > > > if (ret < 0) > > > - return len; > > > + return ret; > > > > > > attrb->latency_ms = hid_sensor_get_report_latency(attrb); > > > > > >
diff --git a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c index ad8910e6ad59..abb09fefc792 100644 --- a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c +++ b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c @@ -32,7 +32,7 @@ static ssize_t _hid_sensor_set_report_latency(struct device *dev, latency = integer * 1000 + fract / 1000; ret = hid_sensor_set_report_latency(attrb, latency); if (ret < 0) - return len; + return ret; attrb->latency_ms = hid_sensor_get_report_latency(attrb);
If hid_sensor_set_report_latency() fails, the error code should be returned instead of a value likely to be interpreted as 'success'. Fixes: 138bc7969c24 ("iio: hid-sensor-hub: Implement batch mode") Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> --- This patch is speculative. The code just *looks* wrong to me. No strong opinion, if it is done on purpose or not. --- drivers/iio/common/hid-sensors/hid-sensor-trigger.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)