about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--queue_epoll.c8
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;