Re: [PATCH] HID: sensor-hub: Fix packing of result buffer for feature report

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 27 Oct 2016, Srinivas Pandruvada wrote:

> When report count is more than one and report size is not 4 bytes, then we
> need some packing into result buffer from the caller of function
> sensor_hub_get_feature.
> By default the value extracted from a field is 4 bytes from hid core
> (using hid_hw_request(hsdev->hdev, report, HID_REQ_GET_REPORT)), even
> if report size if less than 4 byte. So when we copy data to user buffer in
> sensor_hub_get_feature, we need to only copy report size bytes even
> when report count is more than 1. This is
> not an issue for most of the sensor hub fields as report count will be 1
> where we already copy only report size bytes, but some string fields
> like description, it is a problem as the report count will be more than 1.
> For example:
>     Field(6)
>       Physical(Sensor.OtherCustom)
>       Application(Sensor.Sensor)
>       Usage(11)
>         Sensor.0306
>         Sensor.0306
>         Sensor.0306
>         Sensor.0306
>         Sensor.0306
>         Sensor.0306
>         Sensor.0306
>         Sensor.0306
>         Sensor.0306
>         Sensor.0306
>         Sensor.0306
>       Report Size(16)
>       Report Count(11)
> 
> Here since the report size is 2 bytes, we will have 2 additional bytes of
> 0s copied into user buffer, if we directly copy to user buffer from
> report->field[]->value
> 
> This change will copy report size bytes into the buffer of caller for each
> usage report->field[]->value. So for example without this change, the
> data displayed for a custom sensor field "sensor-model":
> 
> 76 00 101 00 110 00 111 00 118 00 111
> (truncated to report count of 11)
> 
> With change
> 
> 76 101 110 111 118 111 32 89 111 103 97
> ("Lenovo Yoga" in ASCII )
> 
> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@xxxxxxxxxxxxxxx>

Applied for 4.9-rc. Thanks,

-- 
Jiri Kosina
SUSE Labs

--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux