From: Tomasz Pakuła Date: Tue, 25 Feb 2025 22:30:01 +0000 (+0100) Subject: HID: pidff: Clamp effect playback LOOP_COUNT value X-Git-Tag: v6.15-rc1~171^2~5^2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0c6673e3d17b258b8c5c7331d28bf6c49f25ed30;p=thirdparty%2Fkernel%2Flinux.git HID: pidff: Clamp effect playback LOOP_COUNT value Ensures the loop count will never exceed the logical_maximum. Fixes implementation errors happening when applications use the max value of int32/DWORD as the effect iterations. This could be observed when running software both native and in wine. Signed-off-by: Tomasz Pakuła Signed-off-by: Jiri Kosina --- diff --git a/drivers/hid/usbhid/hid-pidff.c b/drivers/hid/usbhid/hid-pidff.c index ffecc712be003..74b033a4ac1b8 100644 --- a/drivers/hid/usbhid/hid-pidff.c +++ b/drivers/hid/usbhid/hid-pidff.c @@ -690,7 +690,8 @@ static void pidff_playback_pid(struct pidff_device *pidff, int pid_id, int n) } else { pidff->effect_operation_status->value[0] = pidff->operation_id[PID_EFFECT_START]; - pidff->effect_operation[PID_LOOP_COUNT].value[0] = n; + pidff->effect_operation[PID_LOOP_COUNT].value[0] = + pidff_clamp(n, pidff->effect_operation[PID_LOOP_COUNT].field); } hid_hw_request(pidff->hid, pidff->reports[PID_EFFECT_OPERATION],