summaryrefslogtreecommitdiff
path: root/package/libs/libusb/patches/001-timerfd.patch
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2013-01-29 10:48:37 +0000
committerFelix Fietkau <nbd@openwrt.org>2013-01-29 10:48:37 +0000
commit5fdc8ca9b8d1bb652ad442a9c1835a1c984a8306 (patch)
treea6a47736669714c32749b20daa7d38f5e7b4b560 /package/libs/libusb/patches/001-timerfd.patch
parent78a64397842623354b9764582fb7726fc8b13910 (diff)
downloadmtk-20170518-5fdc8ca9b8d1bb652ad442a9c1835a1c984a8306.zip
mtk-20170518-5fdc8ca9b8d1bb652ad442a9c1835a1c984a8306.tar.gz
mtk-20170518-5fdc8ca9b8d1bb652ad442a9c1835a1c984a8306.tar.bz2
libusb: add from /packages, add myself as maintainer
SVN-Revision: 35373
Diffstat (limited to 'package/libs/libusb/patches/001-timerfd.patch')
-rw-r--r--package/libs/libusb/patches/001-timerfd.patch33
1 files changed, 33 insertions, 0 deletions
diff --git a/package/libs/libusb/patches/001-timerfd.patch b/package/libs/libusb/patches/001-timerfd.patch
new file mode 100644
index 0000000..de48a7f
--- /dev/null
+++ b/package/libs/libusb/patches/001-timerfd.patch
@@ -0,0 +1,33 @@
+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
+@@ -20,6 +20,7 @@
+
+ #include <config.h>
+ #include <errno.h>
++#include <fcntl.h>
+ #include <signal.h>
+ #include <stdint.h>
+ #include <stdlib.h>
+@@ -1072,7 +1073,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);