Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.1/patches/2233407/?format=api
{ "id": 2233407, "url": "http://patchwork.ozlabs.org/api/1.1/patches/2233407/?format=api", "web_url": "http://patchwork.ozlabs.org/project/ltp/patch/20260506113655.10797-3-mmenashe@redhat.com/", "project": { "id": 59, "url": "http://patchwork.ozlabs.org/api/1.1/projects/59/?format=api", "name": "Linux Test Project development", "link_name": "ltp", "list_id": "ltp.lists.linux.it", "list_email": "ltp@lists.linux.it", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20260506113655.10797-3-mmenashe@redhat.com>", "date": "2026-05-06T11:36:53", "name": "[2/4] futex_wait07: Add EINTR error coverage test", "commit_ref": null, "pull_url": null, "state": "changes-requested", "archived": false, "hash": "3146014aab2bf1c099d7617a565a63d50ebd5a4a", "submitter": { "id": 93123, "url": "http://patchwork.ozlabs.org/api/1.1/people/93123/?format=api", "name": "Michael Menasherov", "email": "mmenashe@redhat.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/ltp/patch/20260506113655.10797-3-mmenashe@redhat.com/mbox/", "series": [ { "id": 502973, "url": "http://patchwork.ozlabs.org/api/1.1/series/502973/?format=api", "web_url": "http://patchwork.ozlabs.org/project/ltp/list/?series=502973", "date": "2026-05-06T11:36:51", "name": "futex: Add error coverage tests for wait, wake and cmp_requeue", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/502973/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2233407/comments/", "check": "fail", "checks": "http://patchwork.ozlabs.org/api/patches/2233407/checks/", "tags": {}, "headers": { "Return-Path": "<ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "ltp@lists.linux.it" ], "Delivered-To": [ "patchwork-incoming@legolas.ozlabs.org", "ltp@picard.linux.it" ], "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=lists.linux.it header.i=@lists.linux.it\n header.a=rsa-sha256 header.s=picard header.b=KVkFjzI3;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=SL0k30oB;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.linux.it\n (client-ip=213.254.12.146; helo=picard.linux.it;\n envelope-from=ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it;\n receiver=patchwork.ozlabs.org)" ], "Received": [ "from picard.linux.it (picard.linux.it [213.254.12.146])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g9YKP6Bfzz1yJq\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 06 May 2026 21:38:01 +1000 (AEST)", "from picard.linux.it (localhost [IPv6:::1])\n\tby picard.linux.it (Postfix) with ESMTP id C61AC3E6159\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 6 May 2026 13:37:59 +0200 (CEST)", "from in-4.smtp.seeweb.it (in-4.smtp.seeweb.it [217.194.8.4])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature ECDSA (secp384r1))\n (No client certificate requested)\n by picard.linux.it (Postfix) with ESMTPS id 734463E2CC3\n for <ltp@lists.linux.it>; Wed, 6 May 2026 13:37:06 +0200 (CEST)", "from us-smtp-delivery-124.mimecast.com\n (us-smtp-delivery-124.mimecast.com [170.10.129.124])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n (No client certificate requested)\n by in-4.smtp.seeweb.it (Postfix) with ESMTPS id CA46810009F7\n for <ltp@lists.linux.it>; Wed, 6 May 2026 13:37:05 +0200 (CEST)", "from mail-wm1-f71.google.com (mail-wm1-f71.google.com\n [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n us-mta-219-ljqfjmgNPa2w2nctMOwoFA-1; Wed, 06 May 2026 07:37:03 -0400", "by mail-wm1-f71.google.com with SMTP id\n 5b1f17b1804b1-48a7994e8ddso59704375e9.0\n for <ltp@lists.linux.it>; Wed, 06 May 2026 04:37:02 -0700 (PDT)", "from fedora.redhat.com (85.65.168.167.dynamic.barak-online.net.\n [85.65.168.167]) by smtp.gmail.com with ESMTPSA id\n ffacd0b85a97d-45055960022sm11919938f8f.26.2026.05.06.04.36.59\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Wed, 06 May 2026 04:37:00 -0700 (PDT)" ], "DKIM-Signature": [ "v=1; a=rsa-sha256; c=relaxed/simple; d=lists.linux.it;\n i=@lists.linux.it; q=dns/txt; s=picard; t=1778067479; h=to : date :\n message-id : in-reply-to : references : mime-version : subject :\n list-id : list-unsubscribe : list-archive : list-post : list-help :\n list-subscribe : from : reply-to : content-type :\n content-transfer-encoding : sender : from;\n bh=YIDZ+VjQ+QTpGPSpe41L7vB6AHlBhvlGEcwIqgUwq/k=;\n b=KVkFjzI334ZrPe0yWfUUcaFkt97AFumtHOTJxdy9Y8tIXh+TOqURGuWx5f+TsmtCqPHDN\n W3IlaL2aOG0V0d2k/wiiWeTUjDpNAio4DPdYjfBGiVy74QwvXn6bUHHwtlB8+dYneh5PiIH\n mce4+Aiw74Ril4Eov2M3f/aWM9vT4X0=", "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1778067424;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=ELO5/95huPjkbBSpOBLFHod6zNbd5CTogwmcbz0btZ8=;\n b=SL0k30oBSEF+O00iAXycOeiWVl3ajeZ8tAFVCnCBorV9raX3AccptBzNjuUFNMs9Jqz06U\n ae/YUcMaGmaWxG038Nto1tnoKkZi9ZymBczF+l+J4zkcuV6Fb3Ld7S3+0wxpOxvzT1IJhF\n kH64k8DfvwjSrPqDAyPsoQYSIByUx4k=" ], "X-MC-Unique": "ljqfjmgNPa2w2nctMOwoFA-1", "X-Mimecast-MFC-AGG-ID": "ljqfjmgNPa2w2nctMOwoFA_1778067422", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1778067421; x=1778672221;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=ELO5/95huPjkbBSpOBLFHod6zNbd5CTogwmcbz0btZ8=;\n b=bqadyekFcOXMHNbnow7RraRwL4wqk/kUQm8kkYKzcYxUAYoBrO/nx+FCkcO+fzfgPW\n 9Da0qCsU52SwELgQjmwuOudrT3UsFLTx9U/REazlf/VvddUitQ1XzxDr5J02cri1WDIa\n h8kvmWcNg1Kzl2XtdAstIxsVKemybISDmc64aGC9BnNwi0KpMCzQw90W7WAwC+Q6IS8I\n 3G3Q3rZmr3ljZ49JZiymle/t6T6ZxLehdrGnJmT/siuO5eoO165KWC71lQ4YlaXO37kX\n uxM8ZaeNBxXqPRxkbEBu1TVLufDgwxu40EjsfIVaPKVrrCDk7hCPQ8yaEgYeR6khZ7V9\n lFyA==", "X-Gm-Message-State": "AOJu0Ywy27cv/ddGxdsiCGgFqNsshRtazptN1564bSRNXYtxDTGK0iBt\n jBJ+qzqIfhzfV3u2EkjVeIYAxVxVxBRh8CpYfo1NsPaOeK769+wYwpguHH8Ul/H5quMo8E6chKn\n UhJWhYxg8RyYEe2AGF5FHlH7zsu2BDBdoz+ltgjx0rfMHBgd7WYH9K3AmTJ39xpu4iaAXQi0esg\n srWbNBRp5E47oxL+hZHjIdiOMrwg0rhQmc7X/c", "X-Gm-Gg": "AeBDieuUEC2p7w79Xy4gu3d+fGXry+WHAMwBEuZssFxl21xEyIIjXWD358bD5C/0xqW\n Or/7YegcEmiDF06198TgEGw4xoKTk1S4RABnrZ0gnyke6ElhrIAULmPb5gd6qLbU+qqHdeVgf1f\n YMTcOZbfqYfyRVv3Dz/hZ/b/EaNoJccZ39HwPkftvo8y+9uVs/Bx0n6k0bt0T3Hzv0ZpZ1FB7Xv\n C4gUZ+mAjM3QTaWgCgscfozwY9QomOojBbicUmQxx4VVwwTg+tmfOijF72HyPJ2iLTVyikFe4kx\n 1woINwzDl+6f48Bfy8A+ZMglpOftAiCFM7EZL0LNf0Akx+TOMtvNRGG6krD6lBS3ljnwlLI7kTl\n fE27Rwq+ydaYcrlPSSjLXv4LAl2pzBBBDbnMeISUTaQy8oZfororokjSTGKvX/3/zNMyu/7mbdm\n 6DdrH0wg==", "X-Received": [ "by 2002:a05:600c:5308:b0:48a:906a:9050 with SMTP id\n 5b1f17b1804b1-48e51e20759mr51473935e9.10.1778067421230;\n Wed, 06 May 2026 04:37:01 -0700 (PDT)", "by 2002:a05:600c:5308:b0:48a:906a:9050 with SMTP id\n 5b1f17b1804b1-48e51e20759mr51473295e9.10.1778067420605;\n Wed, 06 May 2026 04:37:00 -0700 (PDT)" ], "To": "ltp@lists.linux.it", "Date": "Wed, 6 May 2026 14:36:53 +0300", "Message-ID": "<20260506113655.10797-3-mmenashe@redhat.com>", "X-Mailer": "git-send-email 2.53.0", "In-Reply-To": "<20260506113655.10797-1-mmenashe@redhat.com>", "References": "<20260506113655.10797-1-mmenashe@redhat.com>", "MIME-Version": "1.0", "X-Mimecast-Spam-Score": "0", "X-Mimecast-MFC-PROC-ID": "RCkzh0K5IsMX4WqJTsNzgIYkHGGBOaoQqcubA5ni-gg_1778067422", "X-Mimecast-Originator": "redhat.com", "X-Spam-Status": "No, score=0.1 required=7.0 tests=DKIM_SIGNED,DKIM_VALID,\n DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS shortcircuit=no\n autolearn=disabled version=4.0.1", "X-Spam-Checker-Version": "SpamAssassin 4.0.1 (2024-03-25) on in-4.smtp.seeweb.it", "X-Virus-Scanned": "clamav-milter 1.0.9 at in-4.smtp.seeweb.it", "X-Virus-Status": "Clean", "Subject": "[LTP] [PATCH 2/4] futex_wait07: Add EINTR error coverage test", "X-BeenThere": "ltp@lists.linux.it", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "Linux Test Project <ltp.lists.linux.it>", "List-Unsubscribe": "<https://lists.linux.it/options/ltp>,\n <mailto:ltp-request@lists.linux.it?subject=unsubscribe>", "List-Archive": "<http://lists.linux.it/pipermail/ltp/>", "List-Post": "<mailto:ltp@lists.linux.it>", "List-Help": "<mailto:ltp-request@lists.linux.it?subject=help>", "List-Subscribe": "<https://lists.linux.it/listinfo/ltp>,\n <mailto:ltp-request@lists.linux.it?subject=subscribe>", "From": "Michael Menasherov via ltp <ltp@lists.linux.it>", "Reply-To": "Michael Menasherov <mmenashe@redhat.com>", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "7bit", "Errors-To": "ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it", "Sender": "\"ltp\" <ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it>" }, "content": "---\n runtest/syscalls | 1 +\n testcases/kernel/syscalls/futex/.gitignore | 1 +\n .../kernel/syscalls/futex/futex_wait07.c | 91 +++++++++++++++++++\n 3 files changed, 93 insertions(+)\n create mode 100644 testcases/kernel/syscalls/futex/futex_wait07.c", "diff": "diff --git a/runtest/syscalls b/runtest/syscalls\nindex 621355e04..75b7754db 100644\n--- a/runtest/syscalls\n+++ b/runtest/syscalls\n@@ -1906,3 +1906,4 @@ io_uring03 io_uring03\n # Tests below may cause kernel memory leak\n perf_event_open03 perf_event_open03\n futex_wait06 futex_wait06\n+futex_wait07 futex_wait07\ndiff --git a/testcases/kernel/syscalls/futex/.gitignore b/testcases/kernel/syscalls/futex/.gitignore\nindex 56596dcb4..74ac9a926 100644\n--- a/testcases/kernel/syscalls/futex/.gitignore\n+++ b/testcases/kernel/syscalls/futex/.gitignore\n@@ -14,3 +14,4 @@\n /futex_waitv02\n /futex_waitv03\n /futex_wait06\n+/futex_wait07\ndiff --git a/testcases/kernel/syscalls/futex/futex_wait07.c b/testcases/kernel/syscalls/futex/futex_wait07.c\nnew file mode 100644\nindex 000000000..c3063389a\n--- /dev/null\n+++ b/testcases/kernel/syscalls/futex/futex_wait07.c\n@@ -0,0 +1,91 @@\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+/*\n+ * Copyright (C) 2026 Red Hat, Inc.\n+ */\n+\n+/*\\\n+ * Check that futex(FUTEX_WAIT) returns EINTR when interrupted by a signal.\n+ * A child process blocks on futex_wait() with a long timeout. The parent\n+ * waits for the child to enter sleep state, then sends SIGUSR1 to it.\n+ * The child verifies it received EINTR and exits accordingly.\n+ */\n+\n+#include <errno.h>\n+#include <signal.h>\n+\n+#include \"futextest.h\"\n+\n+static futex_t *futex;\n+\n+static struct futex_test_variants variants[] = {\n+#if (__NR_futex != __LTP__NR_INVALID_SYSCALL)\n+\t{ .fntype = FUTEX_FN_FUTEX, .tstype = TST_KERN_OLD_TIMESPEC, .desc = \"syscall with old kernel spec\"},\n+#endif\n+\n+#if (__NR_futex_time64 != __LTP__NR_INVALID_SYSCALL)\n+\t{ .fntype = FUTEX_FN_FUTEX64, .tstype = TST_KERN_TIMESPEC, .desc = \"syscall time64 with kernel spec\"},\n+#endif\n+};\n+\n+/* We need a handler so SIGUSR1 is caught instead of killing the process.\n+ * The empty body is needed, just receiving the signal is enough to\n+ * interrupt futex_wait() and make it return into EINTR -1 status.\n+ */\n+static void sigusr1_handler(int sig LTP_ATTRIBUTE_UNUSED)\n+{\n+}\n+\n+static void do_child(void)\n+{\n+\tstruct futex_test_variants *tv = &variants[tst_variant];\n+\tstruct sigaction sa;\n+\tstruct tst_ts timeout;\n+\n+\tsa.sa_handler = sigusr1_handler;\n+\tsa.sa_flags = 0;\n+\tSAFE_SIGEMPTYSET(&sa.sa_mask);\n+\tSAFE_SIGACTION(SIGUSR1, &sa, NULL);\n+\n+\ttimeout = tst_ts_from_ms(tv->tstype, 5000);\n+\tTST_EXP_FAIL(futex_wait(tv->fntype, futex, *futex, &timeout, 0), EINTR);\n+\texit(0);\n+}\n+\n+static void run(void)\n+{\n+\tpid_t child;\n+\n+\tchild = SAFE_FORK();\n+\n+\tif (child == 0)\n+\t\tdo_child();\n+\n+\tTST_PROCESS_STATE_WAIT(child, 'S', 0);\n+\tSAFE_KILL(child, SIGUSR1);\n+}\n+\n+static void setup(void)\n+{\n+\tstruct futex_test_variants *tv = &variants[tst_variant];\n+\n+\ttst_res(TINFO, \"Testing variant: %s\", tv->desc);\n+\tfutex_supported_by_kernel(tv->fntype);\n+\n+\tfutex = SAFE_MMAP(NULL, sizeof(*futex), PROT_READ | PROT_WRITE, MAP_ANONYMOUS | MAP_SHARED, -1, 0);\n+\t*futex = FUTEX_INITIALIZER;\n+}\n+\n+static void cleanup(void)\n+{\n+\tif (futex) {\n+\t\tSAFE_MUNMAP((void *)futex, sizeof(*futex));\n+\t}\n+}\n+\n+static struct tst_test test = {\n+\t.setup = setup,\n+\t.cleanup = cleanup,\n+\t.test_all = run,\n+\t.test_variants = ARRAY_SIZE(variants),\n+\t.forks_child = 1,\n+};\n", "prefixes": [ "2/4" ] }