[PATCH 0/3] hwmon: (corsair-cpro) Fix issues when hidraw is used

Aleksa Savic posted 3 patches 1 year, 7 months ago
drivers/hwmon/corsair-cpro.c | 45 +++++++++++++++++++++++++-----------
1 file changed, 32 insertions(+), 13 deletions(-)
[PATCH 0/3] hwmon: (corsair-cpro) Fix issues when hidraw is used
Posted by Aleksa Savic 1 year, 7 months ago
This patch series fixes the behavior of the corsair-cpro driver while
hidraw is used from userspace.

The first patch introduces a separate buffer for sending commands to
the device to prevent it from being overwritten thanks to a hidraw
userspace call.

The second patch replaces the complete() call in the raw event parsing
function with complete_all() to signify that the completion is done
until reinit.

The third patch introduces locking for the ccp->wait_input_report
completion as it's touched in functions that could be executing in
parallel.

Aleksa Savic (3):
  hwmon: (corsair-cpro) Use a separate buffer for sending commands
  hwmon: (corsair-cpro) Use complete_all() instead of complete() in
    ccp_raw_event()
  hwmon: (corsair-cpro) Protect ccp->wait_input_report with a spinlock

 drivers/hwmon/corsair-cpro.c | 45 +++++++++++++++++++++++++-----------
 1 file changed, 32 insertions(+), 13 deletions(-)

-- 
2.44.0
Re: [PATCH 0/3] hwmon: (corsair-cpro) Fix issues when hidraw is used
Posted by Guenter Roeck 1 year, 7 months ago
On 5/4/24 02:25, Aleksa Savic wrote:
> This patch series fixes the behavior of the corsair-cpro driver while
> hidraw is used from userspace.
> 
> The first patch introduces a separate buffer for sending commands to
> the device to prevent it from being overwritten thanks to a hidraw
> userspace call.
> 
> The second patch replaces the complete() call in the raw event parsing
> function with complete_all() to signify that the completion is done
> until reinit.
> 
> The third patch introduces locking for the ccp->wait_input_report
> completion as it's touched in functions that could be executing in
> parallel.
> 
> Aleksa Savic (3):
>    hwmon: (corsair-cpro) Use a separate buffer for sending commands
>    hwmon: (corsair-cpro) Use complete_all() instead of complete() in
>      ccp_raw_event()
>    hwmon: (corsair-cpro) Protect ccp->wait_input_report with a spinlock
> 
>   drivers/hwmon/corsair-cpro.c | 45 +++++++++++++++++++++++++-----------
>   1 file changed, 32 insertions(+), 13 deletions(-)
> 

Series applied.

Thanks,
Guenter