get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/2194233/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2194233,
    "url": "http://patchwork.ozlabs.org/api/patches/2194233/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/ltp/patch/20260207145942.299366-1-changwei.zou@canonical.com/",
    "project": {
        "id": 59,
        "url": "http://patchwork.ozlabs.org/api/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": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260207145942.299366-1-changwei.zou@canonical.com>",
    "list_archive_url": null,
    "date": "2026-02-07T14:59:42",
    "name": "lapi/tls: reserve pre-TCB space to avoid undefined behavior in clone10.c",
    "commit_ref": null,
    "pull_url": null,
    "state": "needs-review-ack",
    "archived": false,
    "hash": "41b1f56f4bfb8dedc140a03050950797f9897875",
    "submitter": {
        "id": 92302,
        "url": "http://patchwork.ozlabs.org/api/people/92302/?format=api",
        "name": "Changwei Zou",
        "email": "changwei.zou@canonical.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/ltp/patch/20260207145942.299366-1-changwei.zou@canonical.com/mbox/",
    "series": [
        {
            "id": 491381,
            "url": "http://patchwork.ozlabs.org/api/series/491381/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/ltp/list/?series=491381",
            "date": "2026-02-07T14:59:42",
            "name": "lapi/tls: reserve pre-TCB space to avoid undefined behavior in clone10.c",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/491381/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2194233/comments/",
    "check": "success",
    "checks": "http://patchwork.ozlabs.org/api/patches/2194233/checks/",
    "tags": {},
    "related": [],
    "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=j9lxJcjK;\n\tdkim=fail reason=\"signature verification failed\" (4096-bit key;\n unprotected) header.d=canonical.com header.i=@canonical.com\n header.a=rsa-sha256 header.s=20251003 header.b=Yvc9/Dv5;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.linux.it\n (client-ip=2001:1418:10:5::2; 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 (unknown [IPv6:2001:1418:10:5::2])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4f7YzN21N2z1xtV\n\tfor <incoming@patchwork.ozlabs.org>; Sun, 08 Feb 2026 02:00:12 +1100 (AEDT)",
            "from picard.linux.it (localhost [IPv6:::1])\n\tby picard.linux.it (Postfix) with ESMTP id 1BDEE3CEC0F\n\tfor <incoming@patchwork.ozlabs.org>; Sat,  7 Feb 2026 15:59:59 +0100 (CET)",
            "from in-3.smtp.seeweb.it (in-3.smtp.seeweb.it\n [IPv6:2001:4b78:1:20::3])\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 839AD3C537C\n for <ltp@lists.linux.it>; Sat,  7 Feb 2026 15:59:53 +0100 (CET)",
            "from smtp-relay-internal-0.canonical.com\n (smtp-relay-internal-0.canonical.com [185.125.188.122])\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-3.smtp.seeweb.it (Postfix) with ESMTPS id D60501A006BA\n for <ltp@lists.linux.it>; Sat,  7 Feb 2026 15:59:52 +0100 (CET)",
            "from mail-pl1-f197.google.com (mail-pl1-f197.google.com\n [209.85.214.197])\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 smtp-relay-internal-0.canonical.com (Postfix) with ESMTPS id B86853F78C\n for <ltp@lists.linux.it>; Sat,  7 Feb 2026 14:59:51 +0000 (UTC)",
            "by mail-pl1-f197.google.com with SMTP id\n d9443c01a7336-2a8c54bbe46so68924475ad.2\n for <ltp@lists.linux.it>; Sat, 07 Feb 2026 06:59:51 -0800 (PST)",
            "from localhost.localdomain ([123.208.221.96])\n by smtp.gmail.com with ESMTPSA id\n d9443c01a7336-2a9521ec5e8sm57655975ad.76.2026.02.07.06.59.47\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Sat, 07 Feb 2026 06:59:49 -0800 (PST)"
        ],
        "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=1770476399; h=to : date :\n message-id : mime-version : subject : list-id : list-unsubscribe :\n list-archive : list-post : list-help : list-subscribe : from :\n reply-to : cc : content-type : content-transfer-encoding : sender :\n from; bh=OIFYhdipHNN1fKW1Mcc4ZCsdrzFxWmifmJdDsNxrbd8=;\n b=j9lxJcjKcxoH6jv9l2nAdx2cQVPJIOuobxs3hkUiYZIS0HdCIKoXMuU7mrtbRtM213hrk\n iveHiZeiTOpOPQclqWJazkmt+U+R/lu/OmedF3MUN9AOqRsSuD5jhlcL/nrdBtziWhdfiQ5\n gLt7y10sa6KSjaEDqyYF9DHn7be2sVw=",
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com;\n s=20251003; t=1770476391;\n bh=S3TntVH20B5fQxuozGZZ/paf3OLh1S/0dRdEQQb73sk=;\n h=From:To:Cc:Subject:Date:Message-ID:MIME-Version;\n b=Yvc9/Dv5Tsq07m+QQPxf9HyPseBGG4dGLi9qG5GKNYlzAjD4xRW8fWP8BBfz7OVmK\n 0UeEyxTMjNGzR5t7+xbPQTQX0Zz5sRlu0BZo8fM6JKxfwvgK/IDc6Ydy8dlmog9d+T\n gMmj0QVyqByANkzgiEWwM2N5YnrHMUhCS3PGrdxwrQQ+YE5GrrIKOkTLoZ1pLUkVoC\n G27BPOH0X78vrwltfhnAnd2DNmWetD/QcyCZHvmkP9B/55mPEYQQ0dzqbZ5uZQSnqI\n R5MC4GpZnJZtZH5k1iDtoZtuwqb+u1mTFeG01E37vLqZsEb3/4Uvr7tq7QRhmG6i+I\n 2wuaDQJGouiM6ZXvz9t5b/dvo4o+SlKTUi1zJTp+k/3g/0DRl+VdjT2WupPBlfEc+U\n 0ojampGhXbQsgG3gRwyaduhHDgEO5Suh/DIcEUAOp9JkZO4t6r3sP/NYBgdUpNobln\n D7f/bX8afs5VUpWDuzFkbVt4C2490xpmFvWQAx/SOSHtXzyulabvK71QdlMVBeBvw5\n QhTQEqsrRazDbCpdSegTxgR/Kd+02E7CvcdEjo7dD/DV/gD4Eg07ZH/UyGNRognoWx\n m6mMgdyorxTAteckUiFjx9r7r14BTdB65UpOZtFLAdcIxXlFybZHWrDPW5AIduiaWc\n Kn+jkeWlk6ppH81iR/cvea7A="
        ],
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1770476390; x=1771081190;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=S3TntVH20B5fQxuozGZZ/paf3OLh1S/0dRdEQQb73sk=;\n b=oNf4lSU/vEuZ0RkwCa+NHq0IUhuOiJmJHOE9xkIYX85Dqregt1IfqqbuZLZBginoiP\n +ieBkT8473rgOdtSWy0lbJsiFXaMbUsMrS/XCqQCXDVzQXuRScv2Mj36qlOM8Ke08j1d\n GvvrI7vH7A8xwAz/nG1QKSeL3O25DV5T7xpwjwpMYBATBPIYmzExde4T4FbR+/XX0goX\n WHrF6NgHXr0jWcVp5lENj7k3/UtYSaYTy1523J4V60jVHu3NB21poCB7XYc0LCYlmSUW\n bEDt7D8bHyRJKO7bGU1GAclXPcyO3n1OeaUdYtCt9UT0J8evkf/1WU2XOnpu+vdFKtoH\n tJjQ==",
        "X-Gm-Message-State": "AOJu0YwZKAjaeATzD/fBKsbqyw3sJQ01A+ealKiRcK6V/Lyn7nBBzaMO\n sRKMM9fDAVnuX7Xkp9ugyUv4eQYvItjLov4eh3+6aAaRCmP8xlqY0vGnNqF53YoAkp7o2VLPjT7\n 6gehfjCAKaCTxIARq10iwEW2znyH+mZn9sIz0vGscHynxDyKaaEFMvyFuPC9ow4Weci0nVR6zp4\n 1ezNU=",
        "X-Gm-Gg": "AZuq6aIgtx1+bopDmEAqPn4LZhNhdgtfVAZcRg2M6gxX1pyXd8qUyokeCw7IyC4m6Ge\n dh9GQDl0WQPAQlgWZ78rMox6BwmjvcoSWAtGBcNEZU+NqxGqQeoUgetlunzgH66aw+r1qKhiTQ8\n fgoJzPd3SRsQVYTWJmuNoQf9gbtcy24dztMFQjIoVGDAjTv+YgDHSkW7pu8Ux8LzuLkfTjV3tuI\n 2uc8RcdG4u0ohynctxdTx0DM3vxF5CeICdqZbE6b87OqlhMKUwndqrjC50mUJEI60xEgEgOBO5p\n OzE44rdRtcBbQNt93djAxK1mOU3Y47yNqPtO14mAx4l+33e5irjYGfF1gBug1t5tr6CqWZOyGpB\n ZSk39uDiOEoeJWgn52Xe1Z/dJHnCmhUE=",
        "X-Received": [
            "by 2002:a17:902:d58d:b0:2aa:d287:693d with SMTP id\n d9443c01a7336-2aad2876a7emr10521715ad.20.1770476390183;\n Sat, 07 Feb 2026 06:59:50 -0800 (PST)",
            "by 2002:a17:902:d58d:b0:2aa:d287:693d with SMTP id\n d9443c01a7336-2aad2876a7emr10521615ad.20.1770476389740;\n Sat, 07 Feb 2026 06:59:49 -0800 (PST)"
        ],
        "To": "ltp@lists.linux.it",
        "Date": "Sun,  8 Feb 2026 01:59:42 +1100",
        "Message-ID": "<20260207145942.299366-1-changwei.zou@canonical.com>",
        "X-Mailer": "git-send-email 2.43.0",
        "MIME-Version": "1.0",
        "X-Spam-Status": "No, score=0.1 required=7.0 tests=DKIM_SIGNED,DKIM_VALID,\n DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS shortcircuit=no\n autolearn=disabled version=4.0.1",
        "X-Spam-Checker-Version": "SpamAssassin 4.0.1 (2024-03-25) on in-3.smtp.seeweb.it",
        "Subject": "[LTP] [PATCH] lapi/tls: reserve pre-TCB space to avoid undefined\n behavior in clone10.c",
        "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": "Changwei Zou via ltp <ltp@lists.linux.it>",
        "Reply-To": "Changwei Zou <changwei.zou@canonical.com>",
        "Cc": "changwei.zou@canonical.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": "Allocate extra space before the TLS area to hold a struct pthread, ensuring\nTHREAD_SELF->cancelhandling is initialized to 0. This prevents undefined\nbehavior in __pthread_disable_asynccancel(), which is called at thread\ncancellation points such as write().\n\nWithout this, touch_tls_in_child() could get stuck in tst_res().\n\n(gdb) bt\n  0  futex_wait () at ../sysdeps/nptl/futex-internal.h:141\n  1  futex_wait_simple () at ../sysdeps/nptl/futex-internal.h:172\n  2  __libc_disable_asynccancel () at ../nptl/cancellation.c:100\n  3  __GI___libc_write () at ../sysdeps/unix/sysv/linux/write.c:26\n  4  __GI___libc_write () at ../sysdeps/unix/sysv/linux/write.c:24\n  5  print_result ()  at tst_test.c:387\n  6  tst_vres_ () at tst_test.c:401\n  7  tst_res_ () at tst_test.c:512\n  8  touch_tls_in_child (arg=<optimized out>) at clone10.c:48\n  9  thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone.S:78\n\nSigned-off-by: Changwei Zou <changwei.zou@canonical.com>\n---\n include/lapi/tls.h | 16 +++++++++++++---\n 1 file changed, 13 insertions(+), 3 deletions(-)",
    "diff": "diff --git a/include/lapi/tls.h b/include/lapi/tls.h\nindex 468fe3086..7f2fa18a1 100644\n--- a/include/lapi/tls.h\n+++ b/include/lapi/tls.h\n@@ -22,6 +22,15 @@\n #define TLS_SIZE 4096\n #define TLS_ALIGN 16\n \n+/*\n+ * Space allocated large enough to hold a struct pthread.\n+ *\n+ * Zero-initialized to ensure THREAD_SELF->cancelhandling starts at 0,\n+ * avoiding undefined behavior (e.g., in clone10.c) in __pthread_disable_asynccancel(),\n+ * which is called at thread cancellation points such as write().\n+ */\n+#define TLS_PRE_TCB_SIZE (TLS_ALIGN * 256)\n+\n #if defined(__x86_64__)\n typedef struct {\n \tvoid *tcb;\n@@ -36,10 +45,11 @@ extern void *tls_ptr;\n \n static inline void *allocate_tls_area(void)\n {\n-\tvoid *tls_area = aligned_alloc(TLS_ALIGN, TLS_SIZE);\n+\tchar *tls_area = aligned_alloc(TLS_ALIGN, TLS_PRE_TCB_SIZE + TLS_SIZE);\n \tif (!tls_area)\n \t\ttst_brk(TBROK | TERRNO, \"aligned_alloc failed\");\n-\tmemset(tls_area, 0, TLS_SIZE);\n+\tmemset(tls_area, 0, TLS_PRE_TCB_SIZE + TLS_SIZE);\n+\ttls_area += TLS_PRE_TCB_SIZE;\n \n #if defined(__x86_64__)\n \ttcb_t *tcb = (tcb_t *)tls_area;\n@@ -59,7 +69,7 @@ static inline void free_tls(void)\n {\n \tusleep(10000);\n \tif (tls_ptr) {\n-\t\tfree(tls_ptr);\n+\t\tfree(((char *)tls_ptr) - TLS_PRE_TCB_SIZE);\n \t\ttls_ptr = NULL;\n \t}\n }\n",
    "prefixes": []
}