From 2869d2bf7a24a0b42bde738589221def0289ce54 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 16 Jul 2013 23:05:43 +0000 Subject: queue_epoll: EPOLL_CTL_MOD should be safe on 2.6.32.61+ Willy Tarreau cherry-picked the relevant fix into 2.6.32 longterm stable tree ref: commit 1c137a47bbdd6e86298627e04f547afd7f35d523 git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git --- queue_epoll.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/queue_epoll.c b/queue_epoll.c index c704ebb..4112377 100644 --- a/queue_epoll.c +++ b/queue_epoll.c @@ -54,6 +54,14 @@ __attribute__((constructor)) static void epoll_ctl_mod_buggy_detect(void) /* TODO: whitelist vendor kernels as fixes are backported */ if (version <= 2) epoll_ctl_mod_buggy = true; + + /* 2.6.32.61 is OK */ + if (version == 2 && patchlevel == 6 && sublevel == 32) { + rc = sscanf(buf.release, "%u.%u.%u.%u", + &version, &patchlevel, &sublevel, &extra); + epoll_ctl_mod_buggy = (rc == 4) && (extra < 61); + } + if (version != 3) return; -- cgit v1.2.3-24-ge0c7