diff options
author | Hans de Goede <hdegoede@redhat.com> | 2013-05-16 21:31:31 +0200 |
---|---|---|
committer | Hans de Goede <hdegoede@redhat.com> | 2013-05-16 21:54:22 +0200 |
commit | 631d1ae168e66d802f3a635a60ee0a6724a6d7c7 (patch) | |
tree | 979aef96dd7a6c6ff23cb0400ea6a0e2e11cad45 | |
parent | 34e5d1888f6b7a110b6e4854825a61bef9ac3e6b (diff) | |
download | libusb-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.c | 13 | ||||
-rw-r--r-- | libusb/version_nano.h | 2 |
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 |