summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2013-05-16 21:31:31 +0200
committerHans de Goede <hdegoede@redhat.com>2013-05-16 21:54:22 +0200
commit631d1ae168e66d802f3a635a60ee0a6724a6d7c7 (patch)
tree979aef96dd7a6c6ff23cb0400ea6a0e2e11cad45
parent34e5d1888f6b7a110b6e4854825a61bef9ac3e6b (diff)
downloadlibusb-631d1ae168e66d802f3a635a60ee0a6724a6d7c7.tar.gz
linux: Fixup init_count tracking on hotplug init error
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-rw-r--r--libusb/os/linux_usbfs.c13
-rw-r--r--libusb/version_nano.h2
2 files changed, 9 insertions, 6 deletions
diff --git a/libusb/os/linux_usbfs.c b/libusb/os/linux_usbfs.c
index 794b3a7..cdafb7b 100644
--- a/libusb/os/linux_usbfs.c
+++ b/libusb/os/linux_usbfs.c
@@ -436,15 +436,18 @@ static int op_init(struct libusb_context *ctx)
usbi_mutex_static_lock(&hotplug_lock);
r = LIBUSB_SUCCESS;
- if (!init_count++) {
+ if (init_count == 0) {
/* start up hotplug event handler */
r = linux_start_event_monitor();
- if (LIBUSB_SUCCESS != r) {
- usbi_err(ctx, "error starting hotplug event monitor");
- }
}
- if (r == LIBUSB_SUCCESS)
+ if (r == LIBUSB_SUCCESS) {
r = linux_scan_devices(ctx);
+ if (r == LIBUSB_SUCCESS)
+ init_count++;
+ else
+ linux_stop_event_monitor();
+ } else
+ usbi_err(ctx, "error starting hotplug event monitor");
usbi_mutex_static_unlock(&hotplug_lock);
return r;
diff --git a/libusb/version_nano.h b/libusb/version_nano.h
index 7391d65..3db6b73 100644
--- a/libusb/version_nano.h
+++ b/libusb/version_nano.h
@@ -1 +1 @@
-#define LIBUSB_NANO 10688
+#define LIBUSB_NANO 10689