Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2194233/?format=api
{ "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": [] }