From nobody Sat Jun 20 11:51:19 2026 Received: from mail-pg1-f171.google.com (mail-pg1-f171.google.com [209.85.215.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4CF11334C17 for ; Wed, 15 Apr 2026 16:26:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776270402; cv=none; b=jGe5kwTgQYDaXyCpf8/U+sCztynNR4I2f4+InnkgmQ5mFgpG+5P2qNgB6PunkZhfJWsUz80daRrgOCH5eDf6xnocPm9GtZjGQjaVIqqYwbcqax8VS0yqr4ZOc+ippvIExUAoAwVQ1FqhpuA39Sxn4Tu03tQAWBj3FYHHumtGl5o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776270402; c=relaxed/simple; bh=UnJpWbigtRXI8ZYTspGvdjU6LR1rMd0ZayI/7mYqFpE=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=NiGjF88QFz5xNw2N+FurtTUewEYCmL8KoZftOw7B+41zd+XiDbhg+M+bofrWBWJ4xrPVV63HVgJbEarsuTGay2y8ZYaRyOlQGkc/Ci+X69fGdWfXw+C4ESXdgMqTRkVPaQ137DrmTuBP4Hsu7yg5RcOfwBFln83Q2Qp+dVjYVEE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=L0Rddejs; arc=none smtp.client-ip=209.85.215.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="L0Rddejs" Received: by mail-pg1-f171.google.com with SMTP id 41be03b00d2f7-c76c60c7502so2756047a12.0 for ; Wed, 15 Apr 2026 09:26:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776270401; x=1776875201; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=K1zpHRVjDzLZNvpaCId8wIvMsrE+6aFCOM0f/Eu3QAc=; b=L0RddejsYEe2qLL72eR1pLi+FsQiP05NaDU9uICWVaqD4yO/17pVjb4G5P7sKbpw/F Bk72icjOrV8ETseEtK7vOMb8i1ioRSssiiwb/7Qn6x9FsBb7JDt3DkppwwrIyKbV6bp0 POzJvR4WZ/m6dLWGoZvAe0Qu1V5uieqTJnS615CCYP0uEe1sV8rLO8TCKCx5IgUtX43C IprQgVHOadK4UVFj1Y1CTSLVw5NZbyCP9D7cjJ0l9EcunAcEGQ2SODUkk+8gD/yPA2Vx xk0EhBp91s2cucyVBc4O5fqDQt5+DKPemygbAF/M9zp9of/Rrj3IQ++zebzuj/87yca0 jvdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776270401; x=1776875201; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=K1zpHRVjDzLZNvpaCId8wIvMsrE+6aFCOM0f/Eu3QAc=; b=eu8GjnETnPqIGgQEgA32/pomF97diQSpEpf0XvaciFfISVK9bC4JkP9HrE9YYZWCyC ngV2tWAC+tth0m1ZHgcsKjBjc6JVTmlZrDxFSLvotcoMxb9dqjBb8HfSVXBAN0/BPBZv 7wfL4yi4wGPQjRQSolDsqewbfndBROskOwq1xAFMU6XApyiOaE9kVB8rxbeuGRewvejB yWrXgWVtL9sOlTf2+HsCQ+8+1lOdrcWIdbUW6jKgFRV5lDMzdzr1laFV+zJs+dlYjWk1 DWEuru+vXjH/YUrblWb+SM65snHAkCfsI/JOItofyXKUfEqjOPgAIfVhisvpejnQeiqF A/tg== X-Forwarded-Encrypted: i=1; AFNElJ83A5GrDNVUKjMr1LRbrCYsrGLjwVlTg15D4yHEykG6WrMC+yegB2/6qbUgW6W6qkaZbdxq5KTInvgID5U=@vger.kernel.org X-Gm-Message-State: AOJu0Yx8ScOyGUlJnXlZIUt8aQcHu6E6d4CSazt0VgE7TlyjyULp5SeF 2bORNZwnc57I6m9GXe44HygmvI28kDndzJzJpIcbiDYKGYFtsI5Mzeo7 X-Gm-Gg: AeBDiesG1rWGm1V7PtL9iu2wFVFh+bXG9tjHVkDKaVTVLs9cP/ZJk8S80oTGgf9pgOH jYN1yVuz0XHxZG3ll3+ii6fF7T5eTAdrRuH6ZdI+oncAj8DimhFbAwVm7HhVUPlCsc0iEAwZr1G VjqcV6JpT/2ATQSU6FX8wRpiVvs+mlD4+mGMNAZBWbGswwI8/34GyGrhGCb1dN2CSggzg1HjlX6 56jIF3geIwXShld1nj6F2+3Eybup23d1GleJkymZ5M22dHe1kFE5mlwLhFMlyPShLv4+fIv9Hd4 8GPM7XBUCXYEPo1AZjJ+LjAxWxzsThwZALo8JTrP/Ro2qN70yI0Gsy7BiHiG9jxFL75wIbxr6ZO 0ek8ntx4TQ9FSH5h+ns9hrDukAwEc42PWLVnleXiAUzLH0JWwiTXJcPWq4gxIbbFRORLqCqyg9T 0euLMJ2AbLXO6jhUGu1eEyx2R8xC+ZwESv/ejn X-Received: by 2002:a17:903:3204:b0:2b0:4f16:22f7 with SMTP id d9443c01a7336-2b5eaae1d27mr1422085ad.16.1776270400484; Wed, 15 Apr 2026 09:26:40 -0700 (PDT) Received: from lgs.. ([2409:893d:1171:10e2:3836:7c38:e5c1:4b6b]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b4782b1174sm32878115ad.70.2026.04.15.09.26.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Apr 2026 09:26:40 -0700 (PDT) From: Guangshuo Li To: Lee Jones , Vincent Sanders , Ben Dooks , Andrew Morton , linux-kernel@vger.kernel.org Cc: Guangshuo Li , stable@vger.kernel.org Subject: [PATCH] mfd: sm501: fix reference leak on failed device registration Date: Thu, 16 Apr 2026 00:26:27 +0800 Message-ID: <20260415162627.3558789-1-lgs201920130244@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" When platform_device_register() fails in sm501_register_device(), the embedded struct device in pdev has already been initialized by device_initialize(), but the failure path only reports the error and returns without dropping the device reference for the current platform device: sm501_register_device() -> platform_device_register(pdev) -> device_initialize(&pdev->dev) -> setup_pdev_dma_masks(pdev) -> platform_device_add(pdev) This leads to a reference leak when platform_device_register() fails. Fix this by calling platform_device_put() before returning the error. The issue was identified by a static analysis tool I developed and confirmed by manual review. Fixes: b6d6454fdb66f ("[PATCH] mfd: SM501 core driver") Cc: stable@vger.kernel.org Signed-off-by: Guangshuo Li --- drivers/mfd/sm501.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/mfd/sm501.c b/drivers/mfd/sm501.c index 0ee6d8940e69..8276456b142f 100644 --- a/drivers/mfd/sm501.c +++ b/drivers/mfd/sm501.c @@ -704,9 +704,11 @@ static int sm501_register_device(struct sm501_devdata = *sm, if (ret >=3D 0) { dev_dbg(sm->dev, "registered %s\n", pdev->name); list_add_tail(&smdev->list, &sm->devices); - } else + } else { dev_err(sm->dev, "error registering %s (%d)\n", pdev->name, ret); + platform_device_put(pdev); + } =20 return ret; } --=20 2.43.0