[packages] libusb-1.0: add a workaround for uClibc TFD_NONBLOCK / O_NONBLOCK mismatch on mips (#9338)
git-svn-id: svn://svn.openwrt.org/openwrt/packages@26794 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
ccf2bb6d90
commit
2701b2866e
35
libs/libusb-1.0/patches/001-timerfd.patch
Normal file
35
libs/libusb-1.0/patches/001-timerfd.patch
Normal file
@ -0,0 +1,35 @@
|
||||
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>
|
||||
|
||||
diff --git a/libusb/io.c b/libusb/io.c
|
||||
index 1379eb3..250b8dc 100644
|
||||
--- a/libusb/io.c
|
||||
+++ b/libusb/io.c
|
||||
@@ -20,6 +20,7 @@
|
||||
|
||||
#include <config.h>
|
||||
#include <errno.h>
|
||||
+#include <fcntl.h>
|
||||
#include <poll.h>
|
||||
#include <pthread.h>
|
||||
#include <signal.h>
|
||||
@@ -1025,7 +1026,7 @@ int usbi_io_init(struct libusb_context *ctx)
|
||||
|
||||
#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);
|
Loading…
x
Reference in New Issue
Block a user