{"id":2220506,"url":"http://patchwork.ozlabs.org/api/1.1/patches/2220506/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-gpio/patch/20260407-treewide-fixes-v1-7-66c9744a56a3@oss.qualcomm.com/","project":{"id":42,"url":"http://patchwork.ozlabs.org/api/1.1/projects/42/?format=json","name":"Linux GPIO development","link_name":"linux-gpio","list_id":"linux-gpio.vger.kernel.org","list_email":"linux-gpio@vger.kernel.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20260407-treewide-fixes-v1-7-66c9744a56a3@oss.qualcomm.com>","date":"2026-04-07T12:49:58","name":"[libgpiod,07/14] tools: reject \"u\" as period unit specifier","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"5aaddb6442b155ee3dcbfb112a4afbb9358df494","submitter":{"id":92196,"url":"http://patchwork.ozlabs.org/api/1.1/people/92196/?format=json","name":"Bartosz Golaszewski","email":"bartosz.golaszewski@oss.qualcomm.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-gpio/patch/20260407-treewide-fixes-v1-7-66c9744a56a3@oss.qualcomm.com/mbox/","series":[{"id":498978,"url":"http://patchwork.ozlabs.org/api/1.1/series/498978/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-gpio/list/?series=498978","date":"2026-04-07T12:49:56","name":"libgpiod: assortment of fixes","version":1,"mbox":"http://patchwork.ozlabs.org/series/498978/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2220506/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2220506/checks/","tags":{},"headers":{"Return-Path":"\n <linux-gpio+bounces-34794-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-gpio@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=LL8IIl5e;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.a=rsa-sha256 header.s=google header.b=DOKtAdwd;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c15:e001:75::12fc:5321; helo=sin.lore.kernel.org;\n envelope-from=linux-gpio+bounces-34794-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com\n header.b=\"LL8IIl5e\";\n\tdkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.b=\"DOKtAdwd\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=205.220.180.131","smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=oss.qualcomm.com"],"Received":["from sin.lore.kernel.org (sin.lore.kernel.org\n [IPv6:2600:3c15:e001:75::12fc:5321])\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 4fqmKY5Lfwz1xy1\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 07 Apr 2026 22:51:29 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sin.lore.kernel.org (Postfix) with ESMTP id EE36A300530B\n\tfor <incoming@patchwork.ozlabs.org>; Tue,  7 Apr 2026 12:51:26 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 3CC823B38A5;\n\tTue,  7 Apr 2026 12:51:26 +0000 (UTC)","from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com\n [205.220.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 0EC573B4E94\n\tfor <linux-gpio@vger.kernel.org>; Tue,  7 Apr 2026 12:51:23 +0000 (UTC)","from pps.filterd (m0279869.ppops.net [127.0.0.1])\n\tby mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 6376bKRP4009056\n\tfor <linux-gpio@vger.kernel.org>; Tue, 7 Apr 2026 12:51:23 GMT","from mail-qt1-f197.google.com (mail-qt1-f197.google.com\n [209.85.160.197])\n\tby mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dcmrktqb9-1\n\t(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n\tfor <linux-gpio@vger.kernel.org>; Tue, 07 Apr 2026 12:51:22 +0000 (GMT)","by mail-qt1-f197.google.com with SMTP id\n d75a77b69052e-50d63962d83so118027941cf.2\n        for <linux-gpio@vger.kernel.org>;\n Tue, 07 Apr 2026 05:51:22 -0700 (PDT)","from brgl-qcom.local ([2a01:cb1d:dc:7e00:b36f:5370:5f91:2d5])\n        by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-4887e83682fsm577526505e9.7.2026.04.07.05.51.20\n        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n        Tue, 07 Apr 2026 05:51:21 -0700 (PDT)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775566286; cv=none;\n b=tiW7ecoMSM6FWy1U8rm6pYDohzx+N8ibhr64Z1fZ1cxjkE9p82UPxAdJFW5CCej2z+KbBkBUpbz6spaor3CogpBazWAi3+DuURgz3EsPJX/5ugxzR2usuJK1iHobXrlnQ6mR+/s/FtFUFMqaC12GIEpF3gsjPmnqx2qWbRXI/r4=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775566286; c=relaxed/simple;\n\tbh=QcYImDpN5TkDug0dC80MP1pvUi3MNvU9QmDLgfuGPTc=;\n\th=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References:\n\t In-Reply-To:To:Cc;\n b=aHJY99SnXSobCnH49xOnQ4t+FpTM2x+xcWBRQ1uQ69cZvY3x/A5HrKKYTbjiiYPSXXutY1O1ClkxBEm+cEmWJFwbolzk/7Wtx5mmh5qDxARlShnXEm3/ffONsS2BfWk8F91qkjOItYId2KIPGrEeys+fXiZOc1yt9LkkLOrW/Lw=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com;\n spf=pass smtp.mailfrom=oss.qualcomm.com;\n dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com\n header.b=LL8IIl5e;\n dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.b=DOKtAdwd; arc=none smtp.client-ip=205.220.180.131","DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=\n\tcc:content-transfer-encoding:content-type:date:from:in-reply-to\n\t:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=\n\t7qB0sD4z4hqE1kG0Fgs6AZ8RF1Fk0V8uT0WylMzAZrY=; b=LL8IIl5eG67083U/\n\tBKVSChDImcx2NGUVd/0ZtXPfXw78jY1rMDqvVX7VtOjqLIY6jdvT4GLH/usw4ESQ\n\tUev1bt217kuHmcxOfBOUws2FIiQwW0DEPTk446FeoL0tPb0o8HZbaQsJYz17bfEz\n\t+sHm9zn9MFIL7c2j5opcV8wBXwlqgWPxhAbI6lTVPTeooqEaQDqnc4u2gPYjScMB\n\tXWuHpDvsFADT+4x8tynA76PlMaZTEQd4ObJ6/3G/HTzoTwae9I6P+fsPOppDrRvn\n\tMKhuARo03pSLVO5u5C8JTAOD3v49PR/g+SQYTWwYQmufYgpfNf5ApxWHHuqPnw/s\n\ttuxK2A==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=oss.qualcomm.com; s=google; t=1775566282; x=1776171082;\n darn=vger.kernel.org;\n        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding\n         :mime-version:subject:date:from:from:to:cc:subject:date:message-id\n         :reply-to;\n        bh=7qB0sD4z4hqE1kG0Fgs6AZ8RF1Fk0V8uT0WylMzAZrY=;\n        b=DOKtAdwdrH9Rne1RCH/EnzX4yzIOKTqCV0TXmTlFrbrSmcA48hsSdqAlIo2PTyOs3b\n         rvVOLUKFcr7qn1iS7C3wNMt6ADwhe86oABrImIsKQq142qBBmR/CUZKim6ws0ovRU1jd\n         MIvrNaudfts+BGIRWdurfIM8qnyJ8G/x2BcMcCLo0qr88mSnTS6ZKqhBaeXi8VCYUTBb\n         iRWs3bTjvQFlW38fvJ7fM6ZSh36t+hHSqIDjWb6KsBHglSitDYwxy9KhCLoglrdw02+q\n         Q0lJmLSlRE5OGJU5grxeHYjq8XgcPxOFb8KHKDXboSME/bXrBCY7MzF3xjZFyRnvHSy5\n         MjFw=="],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1775566282; x=1776171082;\n        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding\n         :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to\n         :cc:subject:date:message-id:reply-to;\n        bh=7qB0sD4z4hqE1kG0Fgs6AZ8RF1Fk0V8uT0WylMzAZrY=;\n        b=LTMNw9Xw3UjXdvmVZ6Ux2p0B9zYFPwsQyGoFki/VADodzR5hwn6ZxQ1XPWZWfxGfCr\n         Ea3AUpJSdzY4k7OrMpNWM4d4Saldw9b2HB6Oo6TCvHHrOfMkmK373+clcxXk9Bky+K62\n         PrVJ26fErHflC3uVIkvATC65sAEeANROgwfqKcksuC7TzspfPyFkOMQmqsrinPS7eepL\n         K9fXeRLhgGjQlMrQvuoPTXfPA0q9PySwKjYD8DlrjAHBSbNnJCPJm9JX+PPRtCWxjyww\n         PxlukedgYNGmiw/UQ1JU4Yrbo21rZcu8XHHyFCyDg8WgzWHcj1LvB/HyY8GhruWEyDaW\n         iYrQ==","X-Gm-Message-State":"AOJu0Yw7IYcQwlr6nuft3lerPq6mtpsotF2eg+IG5gPSIzj8SgYPlnfT\n\t0NDxxvphCyMGJVueaexdG6dzmeF/6thyyY9zkYtvH1shO+GhyC1EuDmqGsQjHxqSI/tWDgMsnLi\n\tKj2vscsPMjtwwE0c4ENuqQ/yeqNXWK5k1Q4z500k92S26ArNvD4Objf1VaQeirlMZ","X-Gm-Gg":"AeBDietxAUUf887sDWLppsm0AqvcYRIb3Tm6gxWwPD2V80fNfxW7UiseutTrGUKf0ba\n\tUu5LK2chIF8dM23yzeX4jobVAvnBBg6chHoWVsZtZc4w7H+uUXLAEFM+dLLAZC1amIUuLylRcow\n\tLqc4UQ7U+SmAcaBORsICKJigVTocS7fXuKwglp8K9lD4C/ZGOdZQoPhjvSgm0j42JEJojL62cNu\n\tMmoM2yU+CpWyFEL+icrFtwKIg72xt8ohWHZAl6UKgE6nqxBPPg3hAuRJwfdM1EE8AUn3L51mAGT\n\tv8VCHpJXM3fvaAdDXKw2vW1hSeYdYZafA/DeStIlwhmMZZ0PBEpCVGpdHEWv8pd93e4Gc7ljFkQ\n\tq3f+3BxzkpqivCvkfdScDn06yQSgJhXJHFkLtStiBh3bnQA7Po9A=","X-Received":["by 2002:a05:622a:1f14:b0:4f0:131f:66fe with SMTP id\n d75a77b69052e-50d62cb86f6mr257230701cf.59.1775566282532;\n        Tue, 07 Apr 2026 05:51:22 -0700 (PDT)","by 2002:a05:622a:1f14:b0:4f0:131f:66fe with SMTP id\n d75a77b69052e-50d62cb86f6mr257230351cf.59.1775566282133;\n        Tue, 07 Apr 2026 05:51:22 -0700 (PDT)"],"From":"Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>","Date":"Tue, 07 Apr 2026 14:49:58 +0200","Subject":"[PATCH libgpiod 07/14] tools: reject \"u\" as period unit specifier","Precedence":"bulk","X-Mailing-List":"linux-gpio@vger.kernel.org","List-Id":"<linux-gpio.vger.kernel.org>","List-Subscribe":"<mailto:linux-gpio+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-gpio+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"7bit","Message-Id":"<20260407-treewide-fixes-v1-7-66c9744a56a3@oss.qualcomm.com>","References":"<20260407-treewide-fixes-v1-0-66c9744a56a3@oss.qualcomm.com>","In-Reply-To":"<20260407-treewide-fixes-v1-0-66c9744a56a3@oss.qualcomm.com>","To":"Linus Walleij <linusw@kernel.org>, Bartosz Golaszewski <brgl@kernel.org>,\n        Kent Gibson <warthog618@gmail.com>, 4fqr <4fqr@proton.me>,\n        Vincent Fazio <vfazio@xes-inc.com>","Cc":"linux-gpio@vger.kernel.org,\n        Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>","X-Mailer":"b4 0.14.2","X-Developer-Signature":"v=1; a=openpgp-sha256; l=1500;\n i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id;\n bh=QcYImDpN5TkDug0dC80MP1pvUi3MNvU9QmDLgfuGPTc=;\n b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBp1P25hBZ+hNbuNXAwKrnEj7NF2WW8J5/LLUCuJ\n y8v3wPNaZaJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCadT9uQAKCRAFnS7L/zaE\n wyi8D/9ch0CnnPgArtJ7XZEPmP0DROWYpDLluoImJ5CwpD4jC9N+ivU5b6QVNQU4tjfPgx0tUHL\n 4j7E+oK35rOH8AlVgvAJSuWyanSTNj6J/Cb6edVE9Evw0UbzYC9UYaQsRHGoNmzl2UBz882m6M7\n Qy61i8kCLMdkGRpvaWr/o2UBVjd8RewrfbJRNTDEVQ43XyElfQS86NGqcJkigX3YDSuTIm0XTWU\n koBRervyA13b4hUmpm7ZYKqv9dzOeDaTCA2/p30ML+dkA/PGn/5BLi+IZAAbOZFvRbiXD51pwub\n sCttStXlrwz4BjEvKT4DFso3nt4qjwuVHUzccA9TMMV2Rh6Pg5OKw13NXLt9KUWbUbX1fn7Mc3E\n KGfjakl4+ZZY0UoK6EZCjb6BIQKMWjN73sop/1HoP0E4ghcN3nkDl6vCqI2B/xJOeeuABNuVRcr\n 0KMaPhGSPp6HfMJZzjsLCU5sS6RxGykBTRpoLPhmtzd2eYRrlcDKKWVDsv3YglSIw1MVftoq1AE\n yTOd97FUt/+WruqQR1WSomJpbDNmFHDU/7qGy7DsdVxSTJJcsa3zmOAPZwKQaX/YhRNhbdUpFWw\n XWLQYBNjoOIEd7vFgSXhZTvchkQ2GYN2NPCebDUkRV2JfojA/dfHvlcb/NT4CXOFBhCKXqv+r46\n BAEU9eXRWOkilGQ==","X-Developer-Key":"i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp;\n fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772","X-Authority-Analysis":"v=2.4 cv=Rrz16imK c=1 sm=1 tr=0 ts=69d4fdcb cx=c_pps\n a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10\n a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22\n a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8\n a=Ye0McKwldmagQdJxArAA:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22","X-Proofpoint-ORIG-GUID":"fRWI84c7DQlZ4ImthmZT1szrbP4tRjii","X-Proofpoint-GUID":"fRWI84c7DQlZ4ImthmZT1szrbP4tRjii","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNDA3MDEyMCBTYWx0ZWRfX6nTBM/cRbNa5\n UfDqEcceFLsxOQZxL++2bnH9Bc4pdhRFDyH0zGEEpJhcGyvUD+HXBKupBUL+n1iLFzEfJn/rs/z\n Ozf9xxpxPc/rbLCH5/jBGW8q0f9zYaUJILQMjUabguOzD8DG8bKJDPH6Rytrs+MgNOgtOcz6ZLa\n x/PCzu5i65n7eKALy/fIpcZY0DZkMYb6eLxVyQ56QkSVN3U/dURVcHEgBQGpoipGd81o6vTaswK\n YFSjpi5fCpJ/ZTAHc6q2V8Br83AlHTWFxcQTGn45wPgjTB5C9gbVeAECWdsLLKAX4BMyyRuE4SP\n WPO3NUGmpA/X14tNQcab4azjn8D8J90qN3RbvYHVor3o5FDetuvzK4z1RtR3MBHmJbGXF5QsufI\n 1QDYVtuqvDYupAPwap2n//oDhgbiFykgfwF+n97HAe1LhDMGQJQMM8v++SfyX24q4i9Z82Lvk5x\n KDt/bLFb+Uo7pD0CvsA==","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-07_02,2026-04-07_02,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n malwarescore=0 lowpriorityscore=0 impostorscore=0 priorityscore=1501\n phishscore=0 bulkscore=0 suspectscore=0 adultscore=0 clxscore=1015\n spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound\n adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000\n definitions=main-2604070120"},"content":"The input \"10u\" (bare 'u' without trailing 's') is silently parsed as\n10 minutes instead of being rejected as an invalid unit. Add stricter\nvalidation and a test-case.\n\nFixes: 8ffb6489286f (\"tools: line name focussed rework\")\nReported-by: 4fqr <4fqr@proton.me>\nSigned-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>\n---\n tools/gpio-tools-test.bash | 11 +++++++++++\n tools/tools-common.c       |  2 ++\n 2 files changed, 13 insertions(+)","diff":"diff --git a/tools/gpio-tools-test.bash b/tools/gpio-tools-test.bash\nindex 62f68364b2812208df08ea5c22eb1ff55374d9a1..0bc6e7db590921a4afee6cb417ac64da2b77d9e2 100755\n--- a/tools/gpio-tools-test.bash\n+++ b/tools/gpio-tools-test.bash\n@@ -1151,6 +1151,17 @@ test_gpioset_with_hold_period() {\n \tstatus_is 0\n }\n \n+test_gpioset_reject_invalid_period() {\n+\tgpiosim_chip sim0 num_lines=8\n+\n+\tlocal sim0=${GPIOSIM_CHIP_NAME[sim0]}\n+\n+\trun_prog gpioset --hold-period=1000u --chip \"$sim0\" 0=1\n+\n+\tstatus_is 1\n+\toutput_regex_match \"invalid period\"\n+}\n+\n test_gpioset_interactive_exit() {\n \tgpiosim_chip sim0 num_lines=8\n \ndiff --git a/tools/tools-common.c b/tools/tools-common.c\nindex af8873f06a0a28c77bb7a0d80641631acf3e173b..79950dd7cf968503548c8091bba4135b90ec821f 100644\n--- a/tools/tools-common.c\n+++ b/tools/tools-common.c\n@@ -122,6 +122,8 @@ long long parse_period(const char *option)\n \n \tswitch (*end) {\n \tcase 'u':\n+\t\tif (*(end + 1) != 's')\n+\t\t\treturn -1;\n \t\tm = 1;\n \t\tend++;\n \t\tbreak;\n","prefixes":["libgpiod","07/14"]}