Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1168df7e authored by Anssi Hannula's avatar Anssi Hannula Committed by Jiri Kosina
Browse files

HID: pidff - fix unnecessary loop iterations on reset



When encountering a strange value in the pool report, pidff_reset
will always refetch the report 20 times, even if one of the retries
results in a sane value. This is because a temporary variable being
used to store the value is not being updated inside the loop.

Fix it by using the value directly in the loop.

Reported-by: default avatarRoel Kluin <roel.kluin@gmail.com>
Signed-off-by: default avatarAnssi Hannula <anssi.hannula@iki.fi>
Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
parent 80f50691
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -1181,12 +1181,11 @@ static void pidff_reset(struct pidff_device *pidff)
	usbhid_wait_io(hid);

	if (pidff->pool[PID_SIMULTANEOUS_MAX].value) {
		int sim_effects = pidff->pool[PID_SIMULTANEOUS_MAX].value[0];
		while (sim_effects < 2) {
		while (pidff->pool[PID_SIMULTANEOUS_MAX].value[0] < 2) {
			if (i++ > 20) {
				printk(KERN_WARNING "hid-pidff: device reports "
				       "%d simultaneous effects\n",
				       sim_effects);
				       pidff->pool[PID_SIMULTANEOUS_MAX].value[0]);
				break;
			}
			debug("pid_pool requested again");