You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
commit cadb77d99e314e42c3eb02d016e9d90136ec6959
|
|
|
|
Author: Alexander Gordeev <lasaine@lvk.cs.msu.su>
|
|
|
|
Date: Thu Jan 27 06:39:16 2011 +0300
|
|
|
|
|
|
|
|
fix timerfd initialization
|
|
|
|
|
|
|
|
sys/timerfd.h defines TFD_NONBLOCK as 0x800 but in kernel TFD_NONBLOCK
|
|
|
|
is an alias for O_NONBLOCK which is defined in arch-specific fcntl.h.
|
|
|
|
While it's still 0x800 for most of archs but for mips it's 0x80. So
|
|
|
|
timerfd_create(..., TFD_NONBLOCK) returns -EINVAL because of that. Fix
|
|
|
|
this by using O_NONBLOCK instead.
|
|
|
|
|
|
|
|
Signed-off-by: Alexander Gordeev <lasaine@lvk.cs.msu.su>
|
|
|
|
|
|
|
|
--- a/libusb/io.c
|
|
|
|
+++ b/libusb/io.c
|
|
|
|
@@ -32,6 +32,7 @@
|
|
|
|
#include <sys/time.h>
|
|
|
|
#endif
|
|
|
|
#ifdef USBI_TIMERFD_AVAILABLE
|
|
|
|
+#include <fcntl.h>
|
|
|
|
#include <sys/timerfd.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
@@ -1141,7 +1142,7 @@ int usbi_io_init(struct libusb_context *
|
|
|
|
|
|
|
|
#ifdef USBI_TIMERFD_AVAILABLE
|
|
|
|
ctx->timerfd = timerfd_create(usbi_backend->get_timerfd_clockid(),
|
|
|
|
- TFD_NONBLOCK);
|
|
|
|
+ O_NONBLOCK);
|
|
|
|
if (ctx->timerfd >= 0) {
|
|
|
|
usbi_dbg("using timerfd for timeouts");
|
|
|
|
r = usbi_add_pollfd(ctx, ctx->timerfd, POLLIN);
|