mirror of
https://gitlab.freedesktop.org/libfprint/libfprint.git
synced 2026-06-12 02:44:18 +00:00
15bea49681
Both patches are on top of 0.5.0: - uru4000: fix race condition on waiting power up irq - uru4000: fix cancelling of imaging from error callback Thanks-To: Timo Teräs <timo.teras@iki.fi>
46 lines
1.4 KiB
Diff
46 lines
1.4 KiB
Diff
From 8a87ba448c62eb14fa51d70ce870dd10b67ba76b Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
|
|
Date: Mon, 3 Dec 2012 09:51:27 +0200
|
|
Subject: [PATCH] uru4000: fix cancelling of imaging from error callback
|
|
|
|
Call error callback before resetting img_transfer to NULL. This
|
|
variable is internally used to detect if we are still in imaging
|
|
loop and the call to execute_state_change() needs to be postponed.
|
|
Since this is the final thing imaging_complete() we can't reset
|
|
img_transfer until just before this call.
|
|
|
|
https://bugs.freedesktop.org/show_bug.cgi?id=57829
|
|
---
|
|
libfprint/drivers/uru4000.c | 9 ++++++---
|
|
1 file changed, 6 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/libfprint/drivers/uru4000.c b/libfprint/drivers/uru4000.c
|
|
index 07e26a4..ccaa87f 100644
|
|
--- a/libfprint/drivers/uru4000.c
|
|
+++ b/libfprint/drivers/uru4000.c
|
|
@@ -789,15 +789,18 @@ static void imaging_complete(struct fpi_ssm *ssm)
|
|
int r = ssm->error;
|
|
fpi_ssm_free(ssm);
|
|
|
|
+ /* Report error before exiting imaging loop - the error handler
|
|
+ * can request state change, which needs to be postponed to end of
|
|
+ * this function. */
|
|
+ if (r)
|
|
+ fpi_imgdev_session_error(dev, r);
|
|
+
|
|
g_free(urudev->img_data);
|
|
urudev->img_data = NULL;
|
|
|
|
libusb_free_transfer(urudev->img_transfer);
|
|
urudev->img_transfer = NULL;
|
|
|
|
- if (r)
|
|
- fpi_imgdev_session_error(dev, r);
|
|
-
|
|
r = execute_state_change(dev);
|
|
if (r)
|
|
fpi_imgdev_session_error(dev, r);
|
|
--
|
|
1.7.10.4
|
|
|