mbox series

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

Message ID 20240504092504.24158-1-savicaleksa83@gmail.com (mailing list archive)
Headers show
Series hwmon: (corsair-cpro) Fix issues when hidraw is used | expand

Message

Aleksa Savic May 4, 2024, 9:25 a.m. UTC
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(-)

Comments

Guenter Roeck May 4, 2024, 1:37 p.m. UTC | #1
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