Index: sys/compat/linux/linux_event.h =================================================================== --- sys/compat/linux/linux_event.h +++ sys/compat/linux/linux_event.h @@ -41,9 +41,10 @@ #define LINUX_EPOLLERR 0x008 #define LINUX_EPOLLHUP 0x010 #define LINUX_EPOLLRDHUP 0x2000 -#define LINUX_EPOLLWAKEUP 1u<<29 -#define LINUX_EPOLLONESHOT 1u<<30 -#define LINUX_EPOLLET 1u<<31 +#define LINUX_EPOLLEXCLUSIVE (1u << 28) +#define LINUX_EPOLLWAKEUP (1u << 29) +#define LINUX_EPOLLONESHOT (1u << 30) +#define LINUX_EPOLLET (1u << 31) #define LINUX_EPOLL_EVRD (LINUX_EPOLLIN|LINUX_EPOLLRDNORM) #define LINUX_EPOLL_EVWR (LINUX_EPOLLOUT|LINUX_EPOLLWRNORM) Index: sys/compat/linux/linux_event.c =================================================================== --- sys/compat/linux/linux_event.c +++ sys/compat/linux/linux_event.c @@ -331,6 +331,12 @@ ++(*nkevents); } + if (levents & LINUX_EPOLLEXCLUSIVE) { + LINUX_CTR1(linux_epollexclusive, "thread(%d) ignoring EPOLLEXCLUSIVE", + td->td_tid); + levents &= ~LINUX_EPOLLEXCLUSIVE; + } + if ((levents & ~(LINUX_EPOLL_EVSUP)) != 0) { p = td->td_proc;