From: jow Date: Sat, 30 Apr 2011 13:04:49 +0000 (+0000) Subject: [packages] libusb-1.0: add a workaround for uClibc TFD_NONBLOCK / O_NONBLOCK mismatch... X-Git-Url: http://207.154.207.93/?a=commitdiff_plain;h=2701b2866e194145b90d9290861628dba002670c;p=packages.git [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 --- diff --git a/libs/libusb-1.0/patches/001-timerfd.patch b/libs/libusb-1.0/patches/001-timerfd.patch new file mode 100644 index 000000000..6b9fde9c5 --- /dev/null +++ b/libs/libusb-1.0/patches/001-timerfd.patch @@ -0,0 +1,35 @@ +commit cadb77d99e314e42c3eb02d016e9d90136ec6959 +Author: Alexander Gordeev +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 + +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 + #include ++#include + #include + #include + #include +@@ -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);