get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2220124,
    "url": "http://patchwork.ozlabs.org/api/patches/2220124/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/ltp/patch/20260407062336.127454-1-samir@linux.ibm.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": "<20260407062336.127454-1-samir@linux.ibm.com>",
    "list_archive_url": null,
    "date": "2026-04-07T06:23:36",
    "name": "cfs-scheduler: Fixed \"make check\" errors and warnings.",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "570c570c3cb3f49ebb8b8ec38dfcdf2ba95931da",
    "submitter": {
        "id": 91376,
        "url": "http://patchwork.ozlabs.org/api/people/91376/?format=api",
        "name": "“Samir",
        "email": "samir@linux.ibm.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/ltp/patch/20260407062336.127454-1-samir@linux.ibm.com/mbox/",
    "series": [
        {
            "id": 498851,
            "url": "http://patchwork.ozlabs.org/api/series/498851/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/ltp/list/?series=498851",
            "date": "2026-04-07T06:23:36",
            "name": "cfs-scheduler: Fixed \"make check\" errors and warnings.",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/498851/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2220124/comments/",
    "check": "warning",
    "checks": "http://patchwork.ozlabs.org/api/patches/2220124/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=fail reason=\"signature verification failed\" (2048-bit key;\n unprotected) header.d=ibm.com header.i=@ibm.com header.a=rsa-sha256\n header.s=pp1 header.b=WA+08GK1;\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 (picard.linux.it [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 4fq8Yh0Dq2z1yFt\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 06 Apr 2026 22:59:51 +1000 (AEST)",
            "from picard.linux.it (localhost [IPv6:::1])\n\tby picard.linux.it (Postfix) with ESMTP id 2085D3CF512\n\tfor <incoming@patchwork.ozlabs.org>; Mon,  6 Apr 2026 14:59:49 +0200 (CEST)",
            "from in-7.smtp.seeweb.it (in-7.smtp.seeweb.it [217.194.8.7])\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 019CB3C2B7E\n for <ltp@lists.linux.it>; Mon,  6 Apr 2026 14:59:45 +0200 (CEST)",
            "from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com\n [148.163.158.5])\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-7.smtp.seeweb.it (Postfix) with ESMTPS id 431D02001D5\n for <ltp@lists.linux.it>; Mon,  6 Apr 2026 14:59:43 +0200 (CEST)",
            "from pps.filterd (m0353725.ppops.net [127.0.0.1])\n by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 635MIJ653623154; Mon, 6 Apr 2026 12:59:42 GMT",
            "from ppma13.dal12v.mail.ibm.com\n (dd.9e.1632.ip4.static.sl-reverse.com [50.22.158.221])\n by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4das2bx7vr-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);\n Mon, 06 Apr 2026 12:59:42 +0000 (GMT)",
            "from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1])\n by ppma13.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id\n 636C3UmX014280;\n Mon, 6 Apr 2026 12:59:41 GMT",
            "from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229])\n by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 4dbf6jvjxq-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);\n Mon, 06 Apr 2026 12:59:41 +0000",
            "from smtpav03.fra02v.mail.ibm.com (smtpav03.fra02v.mail.ibm.com\n [10.20.54.102])\n by smtprelay07.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id\n 636CxbPh50528524\n (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);\n Mon, 6 Apr 2026 12:59:37 GMT",
            "from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1])\n by IMSVA (Postfix) with ESMTP id 76AC920043;\n Mon,  6 Apr 2026 12:59:37 +0000 (GMT)",
            "from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1])\n by IMSVA (Postfix) with ESMTP id A5FA020040;\n Mon,  6 Apr 2026 12:59:36 +0000 (GMT)",
            "from ltcden9-lp6.ltc.tadn.ibm.com (unknown [9.5.7.39])\n by smtpav03.fra02v.mail.ibm.com (Postfix) with ESMTP;\n Mon,  6 Apr 2026 12:59:36 +0000 (GMT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc\n :content-transfer-encoding:date:from:message-id:mime-version\n :subject:to; s=pp1; bh=UvofAyRgW+UJ8eOKenJR6yNyGXkVN0dQemH47JCl0\n Ss=; b=WA+08GK1+0AkJJwwB/d1XZfW5mnKlYQkK5DyoGyyXlRk/c1RJHRyfH4MD\n 7H1c4NO/ILx313++ZPc3Wo2OpGbSTnRqM0Z7gyk7hSgqhDx2MUIIic09O/Z6i22O\n /vMP+dP31VmusIfQylIhqI+OTPWEIwX+7OCVXn+n/294Zys8H6rmodBzUtX4NGO2\n S7wfIYjnLsICS8/QmffK4tdu4U4OBiu4YafWac8ybrgvp5NQtf8TCcJmE26s0bfR\n dPxy82cmcp2Cw1teNbt5bYUA+fTN0PrH5jlH7QXkoamfJAhBQQgyoKiB73SNQR4c\n X7QG+xsdWlQnzBWjLDOSqJGkbQTWA==",
        "From": "=?utf-8?b?4oCcU2FtaXI=?= <samir@linux.ibm.com>",
        "To": "ltp@lists.linux.it",
        "Date": "Tue,  7 Apr 2026 11:53:36 +0530",
        "Message-ID": "<20260407062336.127454-1-samir@linux.ibm.com>",
        "X-Mailer": "git-send-email 2.52.0",
        "MIME-Version": "1.0",
        "X-TM-AS-GCONF": "00",
        "X-Proofpoint-ORIG-GUID": "x8nUdEL-QqIfCZicZLSDCMpycOrbz4uV",
        "X-Proofpoint-GUID": "x8nUdEL-QqIfCZicZLSDCMpycOrbz4uV",
        "X-Authority-Analysis": "v=2.4 cv=U9qfzOru c=1 sm=1 tr=0 ts=69d3ae3e cx=c_pps\n a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17\n a=A5OVakUREuEA:10 a=M51BFTxLslgA:10 a=VkNPw1HP01LnGYTKEx00:22\n a=RnoormkPH1_aCDwRdu11:22 a=V8glGbnc2Ofi9Qvn3v5h:22 a=VnNF1IyMAAAA:8\n a=Tty9oNO6AAAA:8 a=R93Jy7f2AAAA:8 a=JfrnYn6hAAAA:8 a=QyXUC8HyAAAA:8\n a=ybZZDoGAAAAA:8 a=l9JX6vZTvPTgqXr74MMA:9 a=Bts-Es6F1CBXvF7u4C_G:22\n a=_4ULuFcjZWfTdIrHNsp6:22 a=1CNFftbPRP8L7MoqJWF3:22 a=0RhZnL1DYvcuLYC8JZ5M:22",
        "X-Proofpoint-Spam-Details-Enc": "AW1haW4tMjYwNDA2MDEyNiBTYWx0ZWRfXxs5fg1ItFcBQ\n dO1pvx7qVxWNFs8LSieIjeN7iy4WWjq1rOXRqqPESAnyguum88PppU24LcB3ynsCG2mGfCYqzql\n 0J9CeuqSS1O6CpfUqHxNx6PUhNy6iHJ+PhSNYhvgBho4g1uMB/BiV3mZeOmis4J9pffHkRTDYRQ\n RQC5dgzC2dxIbaLpY3XFevya6+2kvf/gmsjZ8XGRGTsL5RmJTjWPF+bTCjeYyOWIcYX1GE9fE5s\n R+QB1dlN5+QVKbe28fgjYNOMQATXj1+hVR99QXKyTY8k7BnF9isw/Rvkpbk0vI1st7B7rJxI2LW\n rQmjGUY764LGYBc91682vaaiigZRzZwSVHpMb4i1CLk88KAOUGOg02ASfVejxRQ6zafClpE5M3E\n VnkssgsNUiTyIzX/8S8Xq3suwn2ES03MVVStKswmCFCCW2d/B6PuO2tsfvvW/EeGjapyuqw4p1W\n FNR3A9knYSo/a/OcPbA==",
        "X-Proofpoint-Virus-Version": "vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-04-06_03,2026-04-03_01,2025-10-01_01",
        "X-Proofpoint-Spam-Details": "rule=outbound_notspam policy=outbound score=0\n bulkscore=0 malwarescore=0 clxscore=1015 adultscore=0 suspectscore=0\n spamscore=0 priorityscore=1501 impostorscore=0 lowpriorityscore=0\n phishscore=0 classifier=typeunknown authscore=0 authtc= authcc=\n route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001\n definitions=main-2604060126",
        "X-Spam-Status": "No, score=2.6 required=7.0 tests=DATE_IN_FUTURE_12_24,\n DKIM_SIGNED,DKIM_VALID,SPF_HELO_NONE,SPF_PASS shortcircuit=no\n autolearn=disabled version=4.0.1",
        "X-Spam-Level": "**",
        "X-Spam-Checker-Version": "SpamAssassin 4.0.1 (2024-03-25) on in-7.smtp.seeweb.it",
        "X-Virus-Scanned": "clamav-milter 1.0.9 at in-7.smtp.seeweb.it",
        "X-Virus-Status": "Clean",
        "Subject": "[LTP] [PATCH] cfs-scheduler: Fixed \"make check\" errors and warnings.",
        "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>",
        "Cc": "=?utf-8?b?4oCcU2FtaXI=?= <samir@linux.ibm.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": "Fixed all make check errors and warnings in cfs_bandwidth01.c and\nhackbench.c to comply with LTP coding style.\n\ncfs_bandwidth01.c:\n- Remove initialization of static variable to 0\n\nhackbench.c:\n- Add SPDX-License-Identifier header\n- Remove FSF mailing address paragraph\n- Remove filename from file header\n- Remove initialization of static variables to 0\n- Convert zero-length array to C99 flexible array\n- Modify barf() function to accept variadic arguments\n- Use __func__ instead of hardcoded function names\n- Separate assignments from if conditions\n- Fix pointer declaration spacing\n- Add blank line after declarations\n- Fix spacing in macro and struct initialization\n- Remove unnecessary braces for single statement\n\nBoth files now pass make check validation with 0 errors and 0 warnings.\n\nSigned-off-by: Samir <samir@linux.ibm.com>\n---\n .../sched/cfs-scheduler/cfs_bandwidth01.c     |   2 +-\n .../kernel/sched/cfs-scheduler/hackbench.c    | 121 +++++++++---------\n 2 files changed, 58 insertions(+), 65 deletions(-)",
    "diff": "diff --git a/testcases/kernel/sched/cfs-scheduler/cfs_bandwidth01.c b/testcases/kernel/sched/cfs-scheduler/cfs_bandwidth01.c\nindex e52858f8e..8c511f060 100644\n--- a/testcases/kernel/sched/cfs-scheduler/cfs_bandwidth01.c\n+++ b/testcases/kernel/sched/cfs-scheduler/cfs_bandwidth01.c\n@@ -35,7 +35,7 @@\n \n static struct tst_cg_group *cg_level2, *cg_level3a, *cg_level3b;\n static struct tst_cg_group *cg_workers[3];\n-static int may_have_waiters = 0;\n+static int may_have_waiters;\n \n static void set_cpu_quota(const struct tst_cg_group *const cg,\n \t\t\t  const float quota_percent)\ndiff --git a/testcases/kernel/sched/cfs-scheduler/hackbench.c b/testcases/kernel/sched/cfs-scheduler/hackbench.c\nindex 6f37060aa..6a30e1cc8 100644\n--- a/testcases/kernel/sched/cfs-scheduler/hackbench.c\n+++ b/testcases/kernel/sched/cfs-scheduler/hackbench.c\n@@ -1,51 +1,33 @@\n-/******************************************************************************/\n-/* Copyright Rusty Russell,                                                   */\n-/* Copyright Pierre Peiffer                                                   */\n-/* Copyright Zhang, Yanmin,                                                   */\n-/* Copyright Ingo Molnar,                                                     */\n-/* Copyright Arjan van de Ven,                                                */\n-/* Copyright (c) International Business Machines  Corp., 2008                 */\n-/*                                                                            */\n-/* This program is free software;  you can redistribute it and/or modify      */\n-/* it under the terms of the GNU General Public License as published by       */\n-/* the Free Software Foundation; either version 2 of the License, or          */\n-/* (at your option) any later version.                                        */\n-/*                                                                            */\n-/* This program is distributed in the hope that it will be useful,            */\n-/* but WITHOUT ANY WARRANTY;  without even the implied warranty of            */\n-/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See                  */\n-/* the GNU General Public License for more details.                           */\n-/*                                                                            */\n-/* You should have received a copy of the GNU General Public License          */\n-/* along with this program;  if not, write to the Free Software               */\n-/* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA    */\n-/*                                                                            */\n-/******************************************************************************/\n-\n-/******************************************************************************/\n-/*                                                                            */\n-/* File:        hackbench.c                                                   */\n-/*                                                                            */\n-/* Description: hackbench tests the Linux scheduler. Test groups of 20        */\n-/*              processes spraying to 20 receivers                            */\n-/*                                                                            */\n-/* Total Tests: 1                                                             */\n-/*                                                                            */\n-/* Test Name:   hackbench01 and hackbench02                                   */\n-/*                                                                            */\n-/* Test Assertion:                                                            */\n-/*                                                                            */\n-/* Author(s):   Rusty Russell <rusty@rustcorp.com.au>,                        */\n-/*              Pierre Peiffer <pierre.peiffer@bull.net>,                     */\n-/*              Ingo Molnar <mingo@elte.hu>,                                  */\n-/*              Arjan van de Ven <arjan@infradead.org>,                       */\n-/*              \"Zhang, Yanmin\" <yanmin_zhang@linux.intel.com>,               */\n-/*              Nathan Lynch <ntl@pobox.com>                                  */\n-/*                                                                            */\n-/* History:     Included into LTP                                             */\n-/*                  - June 26 2008 - Subrata Modak<subrata@linux.vnet.ibm.com>*/\n-/*                                                                            */\n-/******************************************************************************/\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+/*\n+ * Copyright Rusty Russell,\n+ * Copyright Pierre Peiffer\n+ * Copyright Zhang, Yanmin,\n+ * Copyright Ingo Molnar,\n+ * Copyright Arjan van de Ven,\n+ * Copyright (c) International Business Machines  Corp., 2008\n+ */\n+\n+/*\n+ * Description: hackbench tests the Linux scheduler. Test groups of 20\n+ * processes spraying to 20 receivers\n+ *\n+ * Total Tests: 1\n+ *\n+ * Test Name:   hackbench01 and hackbench02\n+ *\n+ * Test Assertion:\n+ *\n+ * Author(s):   Rusty Russell <rusty@rustcorp.com.au>,\n+ *              Pierre Peiffer <pierre.peiffer@bull.net>,\n+ *              Ingo Molnar <mingo@elte.hu>,\n+ *              Arjan van de Ven <arjan@infradead.org>,\n+ *              \"Zhang, Yanmin\" <yanmin_zhang@linux.intel.com>,\n+ *              Nathan Lynch <ntl@pobox.com>\n+ *\n+ * History:     Included into LTP\n+ *                  - June 26 2008 - Subrata Modak<subrata@linux.vnet.ibm.com>\n+ */\n #include <pthread.h>\n #include <stdio.h>\n #include <stdlib.h>\n@@ -58,25 +40,26 @@\n #include <sys/time.h>\n #include <sys/poll.h>\n #include <limits.h>\n+#include <stdarg.h>\n \n-#define SAFE_FREE(p) { if (p) { free(p); (p)=NULL; } }\n+#define SAFE_FREE(p) { if (p) { free(p); (p) = NULL; } }\n #define DATASIZE 100\n static struct sender_context **snd_ctx_tab;\t/*Table for sender context pointers. */\n static struct receiver_context **rev_ctx_tab;\t/*Table for receiver context pointers. */\n-static int gr_num = 0;\t\t/*For group calculation */\n+static int gr_num;\t\t/*For group calculation */\n static unsigned int loops = 100;\n /*\n  * 0 means thread mode and others mean process (default)\n  */\n static unsigned int process_mode = 1;\n \n-static int use_pipes = 0;\n+static int use_pipes;\n \n struct sender_context {\n \tunsigned int num_fds;\n \tint ready_out;\n \tint wakefd;\n-\tint out_fds[0];\n+\tint out_fds[];\n };\n \n struct receiver_context {\n@@ -86,9 +69,14 @@ struct receiver_context {\n \tint wakefd;\n };\n \n-static void barf(const char *msg)\n+static void barf(const char *fmt, ...)\n {\n-\tfprintf(stderr, \"%s (error: %s)\\n\", msg, strerror(errno));\n+\tva_list args;\n+\n+\tva_start(args, fmt);\n+\tvfprintf(stderr, fmt, args);\n+\tva_end(args);\n+\tfprintf(stderr, \" (error: %s)\\n\", strerror(errno));\n \texit(1);\n }\n \n@@ -108,18 +96,18 @@ static void fdpair(int fds[2])\n \t\tif (socketpair(AF_UNIX, SOCK_STREAM, 0, fds) == 0)\n \t\t\treturn;\n \t}\n-\tbarf(\"Creating fdpair\");\n+\tbarf(\"Creating %s\", __func__);\n }\n \n /* Block until we're ready to go */\n static void ready(int ready_out, int wakefd)\n {\n \tchar dummy;\n-\tstruct pollfd pollfd = {.fd = wakefd,.events = POLLIN };\n+\tstruct pollfd pollfd = {.fd = wakefd, .events = POLLIN };\n \n \t/* Tell them we're ready. */\n \tif (write(ready_out, &dummy, 1) != 1)\n-\t\tbarf(\"CLIENT: ready write\");\n+\t\tbarf(\"CLIENT: %s write\", __func__);\n \n \t/* Wait for \"GO\" signal */\n \tif (poll(&pollfd, 1, -1) != 1)\n@@ -210,7 +198,8 @@ pthread_t create_worker(void *ctx, void *(*func) (void *))\n \t\tbarf(\"pthread_attr_setstacksize\");\n #endif\n \n-\tif ((err = pthread_create(&childid, &attr, func, ctx)) != 0) {\n+\terr = pthread_create(&childid, &attr, func, ctx);\n+\tif (err != 0) {\n \t\tfprintf(stderr, \"pthread_create failed: %s (%d)\\n\",\n \t\t\tstrerror(err), err);\n \t\texit(-1);\n@@ -235,11 +224,12 @@ void reap_worker(pthread_t id)\n }\n \n /* One group of senders and receivers */\n-static unsigned int group(pthread_t * pth,\n+static unsigned int group(pthread_t *pth,\n \t\t\t  unsigned int num_fds, int ready_out, int wakefd)\n {\n \tunsigned int i;\n \tstruct sender_context *snd_ctx = malloc(sizeof(struct sender_context) + num_fds * sizeof(int));\n+\n \tif (!snd_ctx)\n \t\tbarf(\"malloc()\");\n \telse\n@@ -305,8 +295,11 @@ int main(int argc, char *argv[])\n \t\targv++;\n \t}\n \n-\tif (argc >= 2 && (num_groups = atoi(argv[1])) == 0)\n-\t\tprint_usage_exit();\n+\tif (argc >= 2) {\n+\t\tnum_groups = atoi(argv[1]);\n+\t\tif (num_groups == 0)\n+\t\t\tprint_usage_exit();\n+\t}\n \n \tprintf(\"Running with %d*40 (== %d) tasks.\\n\",\n \t       num_groups, num_groups * 40);\n@@ -329,7 +322,7 @@ int main(int argc, char *argv[])\n \tsnd_ctx_tab = malloc(num_groups * sizeof(void *));\n \trev_ctx_tab = malloc(num_groups * num_fds * sizeof(void *));\n \tif (!pth_tab || !snd_ctx_tab || !rev_ctx_tab)\n-\t\tbarf(\"main:malloc()\");\n+\t\tbarf(\"%s:malloc()\", __func__);\n \n \tfdpair(readyfds);\n \tfdpair(wakefds);\n@@ -363,9 +356,8 @@ int main(int argc, char *argv[])\n \n \t/* free the memory */\n \tfor (i = 0; i < num_groups; i++) {\n-\t\tfor (j = 0; j < num_fds; j++) {\n+\t\tfor (j = 0; j < num_fds; j++)\n \t\t\tSAFE_FREE(rev_ctx_tab[i * num_fds + j])\n-\t\t}\n \t\tSAFE_FREE(snd_ctx_tab[i]);\n \t}\n \tSAFE_FREE(pth_tab);\n@@ -373,3 +365,4 @@ int main(int argc, char *argv[])\n \tSAFE_FREE(rev_ctx_tab);\n \texit(0);\n }\n+\n",
    "prefixes": []
}