Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2217341/?format=api
{ "id": 2217341, "url": "http://patchwork.ozlabs.org/api/patches/2217341/?format=api", "web_url": "http://patchwork.ozlabs.org/project/openbmc/patch/20260327221905.267410-2-devnexen@gmail.com/", "project": { "id": 56, "url": "http://patchwork.ozlabs.org/api/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": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260327221905.267410-2-devnexen@gmail.com>", "list_archive_url": null, "date": "2026-03-27T22:19:05", "name": "[2/2] media: nuvoton: npcm-video: fix memory leaks in probe and remove", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "26f040f9b3e6ca6b70c72affce9880b07e88556c", "submitter": { "id": 76714, "url": "http://patchwork.ozlabs.org/api/people/76714/?format=api", "name": "David Carlier", "email": "devnexen@gmail.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/openbmc/patch/20260327221905.267410-2-devnexen@gmail.com/mbox/", "series": [ { "id": 497842, "url": "http://patchwork.ozlabs.org/api/series/497842/?format=api", "web_url": "http://patchwork.ozlabs.org/project/openbmc/list/?series=497842", "date": "2026-03-27T22:19:05", "name": "[1/2] media: nuvoton: npcm-video: fix error handling in npcm_video_init()", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/497842/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2217341/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2217341/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "\n <openbmc+bounces-1737-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=Zgax5jHZ;\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-1737-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::32f\"", "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=Zgax5jHZ;\n\tdkim-atps=neutral", "lists.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gmail.com\n (client-ip=2a00:1450:4864:20::32f; helo=mail-wm1-x32f.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 server-signature ECDSA (secp384r1 raw public key)\n server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fjKXq5Ppyz1y0D\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 28 Mar 2026 12:23:55 +1100 (AEDT)", "from boromir.ozlabs.org (localhost [127.0.0.1])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 4fjKXj428nz2xPL;\n\tSat, 28 Mar 2026 12:23:49 +1100 (AEDT)", "from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com\n [IPv6:2a00:1450:4864:20::32f])\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 4fjFRl44dNz2xMQ\n\tfor <openbmc@lists.ozlabs.org>; Sat, 28 Mar 2026 09:19:15 +1100 (AEDT)", "by mail-wm1-x32f.google.com with SMTP id\n 5b1f17b1804b1-48538c5956bso25361635e9.0\n for <openbmc@lists.ozlabs.org>; Fri, 27 Mar 2026 15:19:15 -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-487306acb47sm8489965e9.15.2026.03.27.15.19.09\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Fri, 27 Mar 2026 15:19:10 -0700 (PDT)" ], "ARC-Seal": "i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1774649956;\n\tcv=none;\n b=eNkYkGEHmiDAT0y+IndbMwQgG2MrnB1njacCeLQFKX3rhJLF0+p/npI+NYTpufZg6quz1wRV+Ay3ejyru7or7lCw0GQEazBa96mYVb+188r9/0a7buapw5xJFiL8np6vYqim2gM8hfsDkc7w6KgkX5XhptPI7Cs2GYVk6UM/yfNMlBhJYHjFhgp1XlFY3lNmgU8QWZXWdujXVB6bX7t/gcKUj3SFJsH+0fc4nwU69/rRA6nXPAt3aWap13q0pfX/xUVMVbWifpAYVsAIGp/G+jgfZ2OmIGWDzxeax/67DzwTAephQ5Aj67vrIqZmuy4gvhrJnlsOx4XoS/0cSqujYw==", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707;\n\tt=1774649956; c=relaxed/relaxed;\n\tbh=m2youRr357rlRwtasZfNZwC9KNFZnZTwKHeGB3J4nWQ=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version;\n b=DA7Mqu3jZcgv5tLKjCv0tNJ5JARTs8bj5HWRFuwQKawHs2DVxbEyrIpbxhePDV7cQlgPUMJ5maFK2xmflZnF39agPM1JLOPCzF6I3U4nFV1eubVZQ363Rpe3b1XN7NVoAACH+d8EUNcCb4yA+xEp++V4afxpbm+oR8nnV2zUND4Ag8oAFmHgpBq2yQ1tV/Z+yLfC1DNun5vdLmwYROMgw50uzjT7LCq7rmHxuRjZCoJEVSrKL3rkLz2OQ+b8Mpa0+gVFwzGhzDni2pRf0vJt3dwXvTQ/fIciM5W1TIWhf2QaPajhm8e7JagTNaz8s06qIDc+dSSNMyVG9JEl+3XL9Q==", "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=Zgax5jHZ; dkim-atps=neutral;\n spf=pass (client-ip=2a00:1450:4864:20::32f; helo=mail-wm1-x32f.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=1774649952; x=1775254752;\n darn=lists.ozlabs.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=m2youRr357rlRwtasZfNZwC9KNFZnZTwKHeGB3J4nWQ=;\n b=Zgax5jHZicVMUPc49quIUTLCCGg8yfQVIXTPhvdQJgP6YxOoASspqHLYFvRv7u1zWL\n kqsFTueM8z89MpoKFPC4barcU84LK4uGD7ATPUOLp+Xdxy/bjoX2u/X77LtT7FYh+S0u\n 5Rpi2zF6IrL8r/ciSV+hEVkBCQJ3gfGz27sMvRjG3066+e9RPxG7lxvK8plpXGa6aNDj\n fxloc5dwHg1WuZHccu2b2fxbQPaBk+WlqwkRjzN5ice91tXoVao5/vUDidVKXdcfsled\n YLn9ORW7yNCahumzbu9QAPcdQmRmWrRY0db/HU1HZRdRCT8cNWwXlPS+xO0+tbBYtg4+\n QC0Q==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1774649952; x=1775254752;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=m2youRr357rlRwtasZfNZwC9KNFZnZTwKHeGB3J4nWQ=;\n b=iCVQR9EquSuWzVDn/6ZcIUIAzAKUOOX39I3V38f6pS0XYcuxUAXvlSbJZDvLZucrRH\n fd4f5U4gJjWBrAm1IB4M32wKx/1zqNKKH+eE+KQoC/VHfBVZIeJwZS8cU+iw4qU2oTP1\n sNHZvqQuXAVrPvfHWdB3Q+h9C2jYDGsveB7fg7lkSg0W5qyXmxCA3eBQNnE7uIPqE0XU\n m2FdRDFSbCyd8CBYEfso8yIdadKaYCDaeQOeLfrJyLOQvKQVevndFzqyk4GPygpzNqNX\n hvSKWTpasJclsDIM/DM7I3hgVNzI9K3aDO/K29nLJUTeg4ZwEVJ9HjjDrNJP5kXeoaD9\n wnug==", "X-Forwarded-Encrypted": "i=1;\n AJvYcCVjHAMwWdo2UCRKxhEY3ejZQFoaIiSvMqbVfc7KFgDt6gx5WWLoMIa/iBeBomJeTKsXUfPQgwgH@lists.ozlabs.org", "X-Gm-Message-State": "AOJu0YwGr6hiT8p9+VNUc1GFu7PMxKBQkbHel7lgkwfMca/UXhV/LPf7\n\tvjy54gtcDKd0reLy4UQBmj31KZjhcME3628ucc3bJhSp/CDUs5xyEZ99", "X-Gm-Gg": "ATEYQzzI5TuPFdtEj/YfFSj0+K35JAeCRjkdL1hrmf5vojMWkmUIMcl9ctwxW91w2xY\n\tQt9D3bWLoT+Fp3qOWaDAZeH8RuOXBZQigN2TvKh7ZlFBdca0YtIuvmnX86k2OafZn3uib71OWfb\n\tJw4rQntax6SZfFcszg3+4O70LW8P82x2coD1xlAMSIS15VUy0t49hJx8XAQQ3y/6lw1M1nMUoJn\n\tEAv+eUUQOphQW7TdZdJ96Q6ShNZKjEqW4KFZopmo4dfBO1PxOy7T8eA8D1iYKpiKWEKrJHc5EEa\n\thvLHgzRmAvCMyIhocX5dCghnqHUwC3oYUVR/vnS0ZTYkGiTetBCTtm7/JfymN/QNDyqG7oPjrp4\n\t1wHodAk+7v6RmOItsOJrppm8HYh2FwlPZDI3rw/aqoKFxIuF4YTZGNpYRIczTJE0wE3thkVreca\n\tqhgmtpeHv2h58HYKXQZln1XRcoSt+w+R40JxuzAfgBL2PuICvMSiAcYa2us0AgD+pabaYKg1HCg\n\tPS7r41iCZmf", "X-Received": "by 2002:a05:600c:45cd:b0:486:fbc4:8fe2 with SMTP id\n 5b1f17b1804b1-4872912dd2bmr59241125e9.15.1774649951916;\n Fri, 27 Mar 2026 15:19:11 -0700 (PDT)", "From": "David Carlier <devnexen@gmail.com>", "To": "kwliu@nuvoton.com,\n\tkflin@nuvoton.com,\n\tmchehab@kernel.org", "Cc": "linux-media@vger.kernel.org,\n\topenbmc@lists.ozlabs.org,\n\tlinux-kernel@vger.kernel.org,\n\tDavid Carlier <devnexen@gmail.com>", "Subject": "[PATCH 2/2] media: nuvoton: npcm-video: fix memory leaks in probe and\n remove", "Date": "Fri, 27 Mar 2026 22:19:05 +0000", "Message-ID": "<20260327221905.267410-2-devnexen@gmail.com>", "X-Mailer": "git-send-email 2.53.0", "In-Reply-To": "<20260327221905.267410-1-devnexen@gmail.com>", "References": "<20260327221905.267410-1-devnexen@gmail.com>", "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": "npcm_video_probe() allocates the npcm_video structure with kzalloc_obj()\nbut never frees it on any probe error path or in npcm_video_remove(),\nleaking the allocation on every failed probe and every normal unbind.\n\nAdditionally, when npcm_video_setup_video() fails, the reserved memory\nassociation established by of_reserved_mem_device_init() in\nnpcm_video_init() is not released, leaking the rmem_assigned_device\nentry on the global list.\n\nFix both by adding kfree(video) to all probe error paths and to\nnpcm_video_remove(), and adding the missing\nof_reserved_mem_device_release() call when npcm_video_setup_video()\nfails.\n\nFixes: 7c3a5e744482 (\"media: nuvoton: Add driver for NPCM video capture/encode engine\")\nSigned-off-by: David Carlier <devnexen@gmail.com>\n---\n drivers/media/platform/nuvoton/npcm-video.c | 21 +++++++++++++++++----\n 1 file changed, 17 insertions(+), 4 deletions(-)", "diff": "diff --git a/drivers/media/platform/nuvoton/npcm-video.c b/drivers/media/platform/nuvoton/npcm-video.c\nindex 5c6bddfe8073..87b09979cc52 100644\n--- a/drivers/media/platform/nuvoton/npcm-video.c\n+++ b/drivers/media/platform/nuvoton/npcm-video.c\n@@ -1749,6 +1749,7 @@ static int npcm_video_probe(struct platform_device *pdev)\n \n \tregs = devm_platform_ioremap_resource(pdev, 0);\n \tif (IS_ERR(regs)) {\n+\t\tkfree(video);\n \t\tdev_err(&pdev->dev, \"Failed to parse VCD reg in DTS\\n\");\n \t\treturn PTR_ERR(regs);\n \t}\n@@ -1756,33 +1757,44 @@ static int npcm_video_probe(struct platform_device *pdev)\n \tvideo->vcd_regmap = devm_regmap_init_mmio(&pdev->dev, regs,\n \t\t\t\t\t\t &npcm_video_regmap_cfg);\n \tif (IS_ERR(video->vcd_regmap)) {\n+\t\tkfree(video);\n \t\tdev_err(&pdev->dev, \"Failed to initialize VCD regmap\\n\");\n \t\treturn PTR_ERR(video->vcd_regmap);\n \t}\n \n \tvideo->reset = devm_reset_control_get(&pdev->dev, NULL);\n \tif (IS_ERR(video->reset)) {\n+\t\tkfree(video);\n \t\tdev_err(&pdev->dev, \"Failed to get VCD reset control in DTS\\n\");\n \t\treturn PTR_ERR(video->reset);\n \t}\n \n \tvideo->gcr_regmap = syscon_regmap_lookup_by_phandle(pdev->dev.of_node,\n \t\t\t\t\t\t\t \"nuvoton,sysgcr\");\n-\tif (IS_ERR(video->gcr_regmap))\n+\tif (IS_ERR(video->gcr_regmap)) {\n+\t\tkfree(video);\n \t\treturn PTR_ERR(video->gcr_regmap);\n+\t}\n \n \tvideo->gfx_regmap = syscon_regmap_lookup_by_phandle(pdev->dev.of_node,\n \t\t\t\t\t\t\t \"nuvoton,sysgfxi\");\n-\tif (IS_ERR(video->gfx_regmap))\n+\tif (IS_ERR(video->gfx_regmap)) {\n+\t\tkfree(video);\n \t\treturn PTR_ERR(video->gfx_regmap);\n+\t}\n \n \trc = npcm_video_init(video);\n-\tif (rc)\n+\tif (rc) {\n+\t\tkfree(video);\n \t\treturn rc;\n+\t}\n \n \trc = npcm_video_setup_video(video);\n-\tif (rc)\n+\tif (rc) {\n+\t\tof_reserved_mem_device_release(&pdev->dev);\n+\t\tkfree(video);\n \t\treturn rc;\n+\t}\n \n \tdev_info(video->dev, \"NPCM video driver probed\\n\");\n \treturn 0;\n@@ -1800,6 +1812,7 @@ static void npcm_video_remove(struct platform_device *pdev)\n \tv4l2_device_unregister(v4l2_dev);\n \tif (video->ece.enable)\n \t\tnpcm_video_ece_stop(video);\n+\tkfree(video);\n \tof_reserved_mem_device_release(dev);\n }\n \n", "prefixes": [ "2/2" ] }