diff options
author | Eric Wong <normalperson@yhbt.net> | 2013-07-16 23:05:43 +0000 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2013-07-16 23:23:28 +0000 |
commit | 2869d2bf7a24a0b42bde738589221def0289ce54 (patch) | |
tree | 094015c875eee4f286d28cb9eb88abc813fbd75f | |
parent | 800bb2057ce8559eede740816be06cf60d959f39 (diff) | |
download | cmogstored-2869d2bf7a24a0b42bde738589221def0289ce54.tar.gz |
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
-rw-r--r-- | queue_epoll.c | 8 |
1 files changed, 8 insertions, 0 deletions
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; |