Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.1/patches/2223676/?format=api
{ "id": 2223676, "url": "http://patchwork.ozlabs.org/api/1.1/patches/2223676/?format=api", "web_url": "http://patchwork.ozlabs.org/project/openbmc/patch/20260414095929.11257-1-devnexen@gmail.com/", "project": { "id": 56, "url": "http://patchwork.ozlabs.org/api/1.1/projects/56/?format=api", "name": "OpenBMC development", "link_name": "openbmc", "list_id": "openbmc.lists.ozlabs.org", "list_email": "openbmc@lists.ozlabs.org", "web_url": "http://github.com/openbmc/", "scm_url": "", "webscm_url": "" }, "msgid": "<20260414095929.11257-1-devnexen@gmail.com>", "date": "2026-04-14T09:59:29", "name": "[v2] iio: adc: npcm: fix unbalanced clk_disable_unprepare()", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "3d8778ce065864a2b02997f73528a6851d400751", "submitter": { "id": 76714, "url": "http://patchwork.ozlabs.org/api/1.1/people/76714/?format=api", "name": "David Carlier", "email": "devnexen@gmail.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/openbmc/patch/20260414095929.11257-1-devnexen@gmail.com/mbox/", "series": [ { "id": 500059, "url": "http://patchwork.ozlabs.org/api/1.1/series/500059/?format=api", "web_url": "http://patchwork.ozlabs.org/project/openbmc/list/?series=500059", "date": "2026-04-14T09:59:29", "name": "[v2] iio: adc: npcm: fix unbalanced clk_disable_unprepare()", "version": 2, "mbox": "http://patchwork.ozlabs.org/series/500059/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2223676/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2223676/checks/", "tags": {}, "headers": { "Return-Path": "\n <openbmc+bounces-1831-incoming=patchwork.ozlabs.org@lists.ozlabs.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "openbmc@lists.ozlabs.org" ], "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=XPmKw+5S;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.ozlabs.org\n (client-ip=112.213.38.117; helo=lists.ozlabs.org;\n envelope-from=openbmc+bounces-1831-incoming=patchwork.ozlabs.org@lists.ozlabs.org;\n receiver=patchwork.ozlabs.org)", "lists.ozlabs.org;\n arc=none smtp.remote-ip=\"2a00:1450:4864:20::336\"", "lists.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com", "lists.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=XPmKw+5S;\n\tdkim-atps=neutral", "lists.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gmail.com\n (client-ip=2a00:1450:4864:20::336; helo=mail-wm1-x336.google.com;\n envelope-from=devnexen@gmail.com; receiver=lists.ozlabs.org)" ], "Received": [ "from lists.ozlabs.org (lists.ozlabs.org [112.213.38.117])\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 4fwyqw0b5rz1yG9\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 16 Apr 2026 10:02:20 +1000 (AEST)", "from boromir.ozlabs.org (localhost [127.0.0.1])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 4fwyqF3RnVz308g;\n\tThu, 16 Apr 2026 10:01:45 +1000 (AEST)", "from mail-wm1-x336.google.com (mail-wm1-x336.google.com\n [IPv6:2a00:1450:4864:20::336])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n\t(No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 4fw0B21Qw0z2yFl\n\tfor <openbmc@lists.ozlabs.org>; Tue, 14 Apr 2026 19:59:37 +1000 (AEST)", "by mail-wm1-x336.google.com with SMTP id\n 5b1f17b1804b1-4852a9c6309so51184375e9.0\n for <openbmc@lists.ozlabs.org>; Tue, 14 Apr 2026 02:59:37 -0700 (PDT)", "from dohko.chello.ie (188-141-5-72.dynamic.upc.ie. [188.141.5.72])\n by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-488ede249fasm37502455e9.7.2026.04.14.02.59.31\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Tue, 14 Apr 2026 02:59:32 -0700 (PDT)" ], "ARC-Seal": "i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1776160780;\n\tcv=none;\n b=N6JHyXkgol0KAdXBMxVDVHLlOaFOa1UsCYBuRbfXqoeFGiKCpQ5mWJjDazA9PVbMrKMugDmfq8RgDcx/NdqIFMiT9Eu0FuQukpqQiTwPvInRQPrGwRc02wEDUcxP4LmTzhuTuWcaSHVbX+Fl7ENchoizwPFTx1jUSsW9LzwT5FAjkQO9aK/odEpKOGBnWuCPgsYIUtSafZC+mLIjxZwT8QmTjuPIHCCVTEIN9fnE8NnoLC8PBS9F4WR1CQZeJ0SX0qvQU9haNYmtGBbkbJIJzdHbJB3rc8uFxagtmEPwsPQyUrr4n6pXQLWDAXkG89a9al7lGoAX3W6OYlfbgBnavw==", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707;\n\tt=1776160780; c=relaxed/relaxed;\n\tbh=TDjpdI9JCOPXXhqNdEllBIg0nb987Wi+gjesQzdTWuo=;\n\th=From:To:Cc:Subject:Date:Message-ID:MIME-Version;\n b=Z8m8nTxTUnKEIW/Njla9fMQsHygJbS+G2gWJx+d//0b/vo2e6APDeObMtQA4xYLmffWaZULszJ36GrNiMUYv24oDqAsYA1KWsOR00tOMJmTpojKPTpWuTPLkiQaF1ZB5Y1NigQaceQqOiilThVN6+LtrrpfR0KrLWiQYOwMpM8B4tN4U/JRtHqnuMMWtkMealVDAyK4tu87bpZtGiPAsP24ZGtwBnNfZurtO28VB4E7D0Jx0d/YJKeHQrBUz19f0PH95pgpOoeCB76FYhI26Jn08drFCMyGYpo9jfj852Aj82CuO7ciBJfuT/qC600qO4adkFPskWXthgQ5OvtOYqw==", "ARC-Authentication-Results": "i=1; lists.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com; dkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=XPmKw+5S; dkim-atps=neutral;\n spf=pass (client-ip=2a00:1450:4864:20::336; helo=mail-wm1-x336.google.com;\n envelope-from=devnexen@gmail.com;\n receiver=lists.ozlabs.org) smtp.mailfrom=gmail.com", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1776160773; x=1776765573;\n darn=lists.ozlabs.org;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:from:to:cc:subject:date:message-id:reply-to;\n bh=TDjpdI9JCOPXXhqNdEllBIg0nb987Wi+gjesQzdTWuo=;\n b=XPmKw+5SUoHXhD7McnB7rY23ndVR5hLaGjkoCx6RKj9ESr8pdh1OhcM1rfbET195uk\n AbV+1CxEypWPup9txmbjQJYNIolv0v5Cqb7M8YCZ78mL3YAPnY/EDPSdqVG7MqSsFrSN\n 4pGKGF8JvehD9pqR19jsJFqDdU9svnMI4fg8qztzwG+zMIp5P3f1jjlzBihanZ5TAJna\n seV/gO+XZyu4troe2gT96sFqI6mC2vr0Ztc28znUVo9yJJFwKMlYD/J/3UA8u+2WWH4L\n IGIICJV62rOnxlLqJlP6WokQ8rGALuZU72c2SbB6Ji5UpJsnG+YiFaT6ZR0OUGHjcxrK\n 92gA==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776160773; x=1776765573;\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=TDjpdI9JCOPXXhqNdEllBIg0nb987Wi+gjesQzdTWuo=;\n b=TmwYbfD1wC/Nv4YhMmzjed220CNhfS77w2lmHiaXIJPWyUIgTe49r8Y8VSY6Y/pn5E\n 8FIectJiRSYepqvPEnqqXweKeSAV1VSs4JVYEoHy8pUBDfcn5DToAXBmTFfMrWJYiQ+N\n bMsVmMLF+G9sOMU56Xa5jIO+v2oEyptbowTpPW8QdLRoHg/M4dK/lAf+Z+gK08lszEnn\n NqT2J7xQ8WoILYK9qrhMfB5yg/hcyRGMOExrF//TnfvpoCtkepOKPDol0rBoFfRU/qMa\n K1TWKki4PxEDM3CD8GHU/uB8PpRykv1RgKZnhx6HJXvjJ+WDM9KSLYw9aBTdt2eunMO4\n 58MA==", "X-Forwarded-Encrypted": "i=1;\n AFNElJ88rzlZWvV0wpJsiqQHrxm0ea2hvOmIFxBLl969rZYr8KwYdBX6vixNs7PKnVyCghsPu4mMbwaJ@lists.ozlabs.org", "X-Gm-Message-State": "AOJu0YzhUYvaMP71awYPqfdkmVzFkVdZuYrsMjdQR1G5WjDNzSj6wQA1\n\tXjoDztXEnd5iqLdjxLoORcwDwu7zBjKsEWQ/wh5A5+fylTwze6lFlkkY", "X-Gm-Gg": "AeBDievh2AszR89rkd6QsP9RzBF/SsQnUrX5vMqRz0s2vyLf6QqLhIbd8zKydse+2oK\n\tVeZ7uKu9l8Cur6Zubm3CiTZXamN6M3PFcwK99BcF86xiP4kcJPOwqWeHlXT+7kVdEwFkMKeLJN6\n\t7ctthLBUqkPakLMM6HG2vIiT7eI1kn4ta+9a7XkMICpRr4xzWUxsq5LbXIiplo9hyuJ2Uc43N0b\n\tLlad2EE+jd9nJnfxOdx0ncXorgvXvUuAgGoYApcU47B3LN0QRlonU+Hmc3m6WPjcoTKDjXnto+P\n\tU/CfcpCopE9TyfXanb6uHpzmBbOfYd82qC8CnfQVL9acJaJc3+HWoc2NoX7gdQQocmVnaOkWuS/\n\tsRY73au/RDGpKwCrSPBAEFpHmL92RS4o0KMA2RdsuxmLn5OjvPR6ys9olKVqaoehTMMj/9+9R4K\n\tfDlJM5tozIZ83hisKzW5SM8y0+TrBZgbhId5Bw9VEd06Od1msIJZSfncRM0fIZw0uGPTSJOg69M\n\t3b7v/iL5v2V", "X-Received": "by 2002:a05:600c:3b0e:b0:487:20ee:bef6 with SMTP id\n 5b1f17b1804b1-488d67e65fdmr230274195e9.11.1776160772762;\n Tue, 14 Apr 2026 02:59:32 -0700 (PDT)", "From": "David Carlier <devnexen@gmail.com>", "To": "Tomer Maimon <tmaimon77@gmail.com>", "Cc": "Andy Shevchenko <andy@kernel.org>, Jonathan Cameron <jic23@kernel.org>,\n David Lechner <dlechner@baylibre.com>,\n =?utf-8?q?Nuno_S=C3=A1?= <nuno.sa@analog.com>,\n Avi Fishman <avifishman70@gmail.com>, Tali Perry <tali.perry1@gmail.com>,\n Andrew Jeffery <andrew@codeconstruct.com.au>,\n Patrick Venture <venture@google.com>, Nancy Yuen <yuenn@google.com>,\n Benjamin Fair <benjaminfair@google.com>, openbmc@lists.ozlabs.org,\n linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org,\n David Carlier <devnexen@gmail.com>", "Subject": "[PATCH v2] iio: adc: npcm: fix unbalanced clk_disable_unprepare()", "Date": "Tue, 14 Apr 2026 10:59:29 +0100", "Message-ID": "<20260414095929.11257-1-devnexen@gmail.com>", "X-Mailer": "git-send-email 2.53.0", "X-Mailing-List": "openbmc@lists.ozlabs.org", "List-Id": "<openbmc.lists.ozlabs.org>", "List-Help": "<mailto:openbmc+help@lists.ozlabs.org>", "List-Owner": "<mailto:openbmc+owner@lists.ozlabs.org>", "List-Post": "<mailto:openbmc@lists.ozlabs.org>", "List-Subscribe": "<mailto:openbmc+subscribe@lists.ozlabs.org>,\n <mailto:openbmc+subscribe-digest@lists.ozlabs.org>,\n <mailto:openbmc+subscribe-nomail@lists.ozlabs.org>", "List-Unsubscribe": "<mailto:openbmc+unsubscribe@lists.ozlabs.org>", "Precedence": "list", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-Spam-Status": "No, score=-0.2 required=5.0 tests=DKIM_SIGNED,DKIM_VALID,\n\tDKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,\n\tSPF_HELO_NONE,SPF_PASS autolearn=disabled version=4.0.1", "X-Spam-Checker-Version": "SpamAssassin 4.0.1 (2024-03-25) on lists.ozlabs.org" }, "content": "The driver acquired the ADC clock with devm_clk_get() and read its\nrate, but never called clk_prepare_enable(). The probe error path and\nnpcm_adc_remove() both called clk_disable_unprepare() unconditionally,\ncausing the clk framework's enable/prepare counts to underflow on\nprobe failure or module unbind.\n\nThe issue went unnoticed because NPCM BMC firmware leaves the ADC\nclock enabled at boot, so the driver happened to work in practice.\n\nSwitch to devm_clk_get_enabled() so the clock is properly enabled\nduring probe and automatically released by the device-managed\ncleanup, and drop the now-redundant clk_disable_unprepare() from\nboth the probe error path and remove().\n\nFixes: 9bf85fbc9d8f (\"iio: adc: add NPCM ADC driver\")\nSigned-off-by: David Carlier <devnexen@gmail.com>\n---\nv2: drop redundant dev_err() on devm_request_irq() failure since the\n IRQ core already logs it, and remove the now-single-statement\n braces (Andy Shevchenko).\n\n drivers/iio/adc/npcm_adc.c | 21 +++++++--------------\n 1 file changed, 7 insertions(+), 14 deletions(-)", "diff": "diff --git a/drivers/iio/adc/npcm_adc.c b/drivers/iio/adc/npcm_adc.c\nindex ddabb9600d46..8afa20701756 100644\n--- a/drivers/iio/adc/npcm_adc.c\n+++ b/drivers/iio/adc/npcm_adc.c\n@@ -231,7 +231,7 @@ static int npcm_adc_probe(struct platform_device *pdev)\n \tif (IS_ERR(info->reset))\n \t\treturn PTR_ERR(info->reset);\n \n-\tinfo->adc_clk = devm_clk_get(&pdev->dev, NULL);\n+\tinfo->adc_clk = devm_clk_get_enabled(&pdev->dev, NULL);\n \tif (IS_ERR(info->adc_clk)) {\n \t\tdev_warn(&pdev->dev, \"ADC clock failed: can't read clk\\n\");\n \t\treturn PTR_ERR(info->adc_clk);\n@@ -244,17 +244,13 @@ static int npcm_adc_probe(struct platform_device *pdev)\n \tinfo->adc_sample_hz = clk_get_rate(info->adc_clk) / ((div + 1) * 2);\n \n \tirq = platform_get_irq(pdev, 0);\n-\tif (irq < 0) {\n-\t\tret = irq;\n-\t\tgoto err_disable_clk;\n-\t}\n+\tif (irq < 0)\n+\t\treturn irq;\n \n \tret = devm_request_irq(&pdev->dev, irq, npcm_adc_isr, 0,\n \t\t\t \"NPCM_ADC\", indio_dev);\n-\tif (ret < 0) {\n-\t\tdev_err(dev, \"failed requesting interrupt\\n\");\n-\t\tgoto err_disable_clk;\n-\t}\n+\tif (ret < 0)\n+\t\treturn ret;\n \n \treg_con = ioread32(info->regs + NPCM_ADCCON);\n \tinfo->vref = devm_regulator_get_optional(&pdev->dev, \"vref\");\n@@ -262,7 +258,7 @@ static int npcm_adc_probe(struct platform_device *pdev)\n \t\tret = regulator_enable(info->vref);\n \t\tif (ret) {\n \t\t\tdev_err(&pdev->dev, \"Can't enable ADC reference voltage\\n\");\n-\t\t\tgoto err_disable_clk;\n+\t\t\treturn ret;\n \t\t}\n \n \t\tiowrite32(reg_con & ~NPCM_ADCCON_REFSEL,\n@@ -274,7 +270,7 @@ static int npcm_adc_probe(struct platform_device *pdev)\n \t\t */\n \t\tif (PTR_ERR(info->vref) != -ENODEV) {\n \t\t\tret = PTR_ERR(info->vref);\n-\t\t\tgoto err_disable_clk;\n+\t\t\treturn ret;\n \t\t}\n \n \t\t/* Use internal reference */\n@@ -314,8 +310,6 @@ static int npcm_adc_probe(struct platform_device *pdev)\n \tiowrite32(reg_con & ~NPCM_ADCCON_ADC_EN, info->regs + NPCM_ADCCON);\n \tif (!IS_ERR(info->vref))\n \t\tregulator_disable(info->vref);\n-err_disable_clk:\n-\tclk_disable_unprepare(info->adc_clk);\n \n \treturn ret;\n }\n@@ -332,7 +326,6 @@ static void npcm_adc_remove(struct platform_device *pdev)\n \tiowrite32(regtemp & ~NPCM_ADCCON_ADC_EN, info->regs + NPCM_ADCCON);\n \tif (!IS_ERR(info->vref))\n \t\tregulator_disable(info->vref);\n-\tclk_disable_unprepare(info->adc_clk);\n }\n \n static struct platform_driver npcm_adc_driver = {\n", "prefixes": [ "v2" ] }