Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.1/patches/2223677/?format=api
{ "id": 2223677, "url": "http://patchwork.ozlabs.org/api/1.1/patches/2223677/?format=api", "web_url": "http://patchwork.ozlabs.org/project/openbmc/patch/20260411123517.15083-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": "<20260411123517.15083-1-devnexen@gmail.com>", "date": "2026-04-11T12:35:17", "name": "iio: adc: npcm: fix unbalanced clk_disable_unprepare()", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "06e1fbdba4a42b72e2d26631d84b32b0b33895aa", "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/20260411123517.15083-1-devnexen@gmail.com/mbox/", "series": [ { "id": 500060, "url": "http://patchwork.ozlabs.org/api/1.1/series/500060/?format=api", "web_url": "http://patchwork.ozlabs.org/project/openbmc/list/?series=500060", "date": "2026-04-11T12:35:17", "name": "iio: adc: npcm: fix unbalanced clk_disable_unprepare()", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/500060/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2223677/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2223677/checks/", "tags": {}, "headers": { "Return-Path": "\n <openbmc+bounces-1833-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=S5Tw8P2Q;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.ozlabs.org\n (client-ip=2404:9400:21b9:f100::1; helo=lists.ozlabs.org;\n envelope-from=openbmc+bounces-1833-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::432\"", "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=S5Tw8P2Q;\n\tdkim-atps=neutral", "lists.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gmail.com\n (client-ip=2a00:1450:4864:20::432; helo=mail-wr1-x432.google.com;\n envelope-from=devnexen@gmail.com; receiver=lists.ozlabs.org)" ], "Received": [ "from lists.ozlabs.org (lists.ozlabs.org\n [IPv6:2404:9400:21b9:f100::1])\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 4fwyrR5G8Lz1yG9\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 16 Apr 2026 10:02:47 +1000 (AEST)", "from boromir.ozlabs.org (localhost [127.0.0.1])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 4fwyr06pHFz2yvc;\n\tThu, 16 Apr 2026 10:02:24 +1000 (AEST)", "from mail-wr1-x432.google.com (mail-wr1-x432.google.com\n [IPv6:2a00:1450:4864:20::432])\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 4ftCnB2l0Gz2yl2\n\tfor <openbmc@lists.ozlabs.org>; Sat, 11 Apr 2026 22:35:25 +1000 (AEST)", "by mail-wr1-x432.google.com with SMTP id\n ffacd0b85a97d-43cf3ee0fc1so1813034f8f.1\n for <openbmc@lists.ozlabs.org>; Sat, 11 Apr 2026 05:35:25 -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-488d532ef00sm163047155e9.5.2026.04.11.05.35.19\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Sat, 11 Apr 2026 05:35:20 -0700 (PDT)" ], "ARC-Seal": "i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1775910927;\n\tcv=none;\n b=ifCAo0zV4BazBRo6GCOC+vD+vVZF2ukp/6PoQ5mVGyiS436B10QtaJSIgEDFUcjWkTckmzp/3tmwcg//WnQsjyQr7+Ygtjx50hypouwX5G7VHbzcP/aVDGNdNL25iseuSezYNACQ/WhwHYvZnpXKxtlXCC4UfJGCi0DEh8f2AqfFCZltefnTXugdIIFC+nP4wOtX+c5m8CalRsUABgxp8thxu/8oFw1wuhcK0+UxIEmnlHflfoaSkOTpB38pmIvA2m51xnHXsyqZta4p2pbGisJIjw0vc+O3tHmoTkgwyVwKW8fSq5vg7guKNrrwB3xo/9xqhQnJqqg/eD/RMkjanA==", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707;\n\tt=1775910927; c=relaxed/relaxed;\n\tbh=JGoFfy0QWc8BwYX8irlGqExRr/Ktk1fkaAh03XIjtf4=;\n\th=From:To:Cc:Subject:Date:Message-ID:MIME-Version;\n b=Fjhwm3KQeHlCDdD9diowEf1AikenW+qGPJGCEUiNlP4g5pVcj6h5AXcQJN74M30F3wmhyee/b/4u5OegBr43Y4psRiKXg0yDMbN9pudayhPmYs6heaB8NSOrOjr9Uw7KU0bxEwXprHcHong4m3wiE+oOErsMjyTUKO/R9fuD9XYvpJkII0TBt3rrdton7VWjw0FaQgZxsRs8ZLEyYAlm9U9bZkShZGmm2URpkSEsXEUca3zwKrUfYk4GIX90+Z2iGzWUWGx0zSgEfDGvkoWt2qjKl5KjEpwhtvPc3i0LkwmLzGSn/b2HCyHIlPM5kN8JcBRQ6Zu6hUyDoyLL/QGeDw==", "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=S5Tw8P2Q; dkim-atps=neutral;\n spf=pass (client-ip=2a00:1450:4864:20::432; helo=mail-wr1-x432.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=1775910921; x=1776515721;\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=JGoFfy0QWc8BwYX8irlGqExRr/Ktk1fkaAh03XIjtf4=;\n b=S5Tw8P2QNx0l9+Rzn1AzT2pmqjgkvyFIB+9uQj8aCqLmFX8M/Pdm48UGjWgg3wE3PK\n 9y2f+xY8kIjTlogBTRt3wFW7IyhjaSYdvyddks278RGJSoGSh5baDSlhdA/DQghOta5a\n cuUi/F+Nk4aEjFk4Yy4FnEyUcKZU1QwpzrBQ2CxfsCVJTAweW7ii4DIlQ+SERi+0H+N2\n f9oVoQHEH1hJ2XmIkdZJ/TryfDW468rg5zOK1pxySa4LgUNMlnqXFZZUXoIpAnHym+RC\n y2DAEzjciGSHFRcp4kBYW7ya0L6JUNtKFBT7QjHdFnXRGsxSFBJAC+qNXcT0D5S634DU\n UBww==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775910921; x=1776515721;\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=JGoFfy0QWc8BwYX8irlGqExRr/Ktk1fkaAh03XIjtf4=;\n b=CQjLIydVtuFCO6OV9jUhCLn9+DyOY7zr0Phr+nuL0An4TBr7zIv4m/uh9lulfYCgLz\n twzpxYZ0jcRoi7fD2yP9cteJnYn0Dnc5ng82jJTTR9Nf2K1B4mnR5B6IDw0b1F1+0MWl\n UlfnoZMtYGzeIF6rulZy48lSV2dMLl8jdiQrdvzzPe9NlYwzubxcPNbDgoj3BZ8dV6Xp\n zziGmgvKlXkhPHQ2zwE7RIauu7tB34N0TQEiAR97ag53I/bEwIZmtwRGZHD7hlnq2YhO\n gmHmQUIyzZwgh84RroMvDhmEObhzJiziOyS6gj4unWBKhhet2vY/1aQ72GZXUDZUSPrl\n Fcuw==", "X-Forwarded-Encrypted": "i=1;\n AJvYcCWk+b4cesGZO7e2Pih2UDlGOuzq7XFNBez9Ay0JGWjji2NUsiMIRE6jPGvJT2VlJwCG6elmTU64@lists.ozlabs.org", "X-Gm-Message-State": "AOJu0YxJcdXqiNiwVBV9KBr3pzF0Kke11izqWqXGrAZJkActBytlGZNr\n\t3zb6I6h0PBhhtRVVp7YFk3xLkpYA+NjIsBCPNLSToCUFTbYK+GpjnHO1", "X-Gm-Gg": "AeBDietOybFGdmdrAH7iIQBve9eMnazLs7q2CT0XpK+z2KzbQyHkor8Mb15v+Q+VLsj\n\t8NZ/hw3j9OG+p4F/S1QLOL2CcKvU13qIHtjgIUwzkBbw/OiKMfxQuiHReXWUhjxxeJK1v26RFqg\n\tOMQ1rwZ30VQG6jRCypfbmtC4h1QJnMhGpKVizveqwYgh2qdszg7pGCEYlU+/Mu2bcML2M1enRHv\n\t8HwuHEQCikGPCtpLpWJ1Dg2g3t0JXzQ7MLTKy0qAh+jRnmfyR4hafcqml+tsgzgyfUDFBPEuoRZ\n\thN1A1HMfVZYTfYBhkXyq0/O5a8jwZ+126DRIn3D3QN+cAglQRYgRrKPsKGTjxVL0BmpiBXOq1rw\n\teClyravkErn182AK42cGmJRzZ0OnHySt9JHrr+7j6nURMKrf5nf1Kcmnwo08x6hAenALl6nWNSs\n\tk4L2rweePlQVTAolBGWPQmm9ApJzRB5emx69wPjngTiSyQ+VYU/CCmAobKJlCbqWwkO/nVJKo3V\n\taBKP27dGscF", "X-Received": "by 2002:a05:600d:a:b0:485:3428:774c with SMTP id\n 5b1f17b1804b1-488d682bb48mr68343125e9.4.1775910921131;\n Sat, 11 Apr 2026 05:35:21 -0700 (PDT)", "From": "David Carlier <devnexen@gmail.com>", "To": "Jonathan Cameron <jic23@kernel.org>", "Cc": "Tomer Maimon <tmaimon77@gmail.com>, Avi Fishman <avifishman70@gmail.com>,\n 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>,\n David Lechner <dlechner@baylibre.com>,\n =?utf-8?q?Nuno_S=C3=A1?= <nuno.sa@analog.com>,\n Andy Shevchenko <andy@kernel.org>, linux-iio@vger.kernel.org,\n openbmc@lists.ozlabs.org, linux-kernel@vger.kernel.org,\n David Carlier <devnexen@gmail.com>", "Subject": "[PATCH] iio: adc: npcm: fix unbalanced clk_disable_unprepare()", "Date": "Sat, 11 Apr 2026 13:35:17 +0100", "Message-ID": "<20260411123517.15083-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---\n drivers/iio/adc/npcm_adc.c | 17 ++++++-----------\n 1 file changed, 6 insertions(+), 11 deletions(-)", "diff": "diff --git a/drivers/iio/adc/npcm_adc.c b/drivers/iio/adc/npcm_adc.c\nindex ddabb9600d46..6acafef3e7c7 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,16 +244,14 @@ 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\treturn ret;\n \t}\n \n \treg_con = ioread32(info->regs + NPCM_ADCCON);\n@@ -262,7 +260,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 +272,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 +312,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 +328,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": [] }