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

Commit b64da05f authored by Dan Carpenter's avatar Dan Carpenter Committed by Dmitry Torokhov
Browse files

Input: hp_sdc_rtc - unlock on error in hp_sdc_rtc_read_i8042timer()



The transaction task here is hp_sdc_tasklet() and it releases the lock.
The problem is if we aren't able to queue the transaction then we need
to release the lock ourselves.

Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent 0221e670
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -180,7 +180,10 @@ static int64_t hp_sdc_rtc_read_i8042timer (uint8_t loadcmd, int numreg)
	if (WARN_ON(down_interruptible(&i8042tregs)))
		return -1;

	if (hp_sdc_enqueue_transaction(&t)) return -1;
	if (hp_sdc_enqueue_transaction(&t)) {
		up(&i8042tregs);
		return -1;
	}
	
	/* Sleep until results come back. */
	if (WARN_ON(down_interruptible(&i8042tregs)))