From nobody Sat Jun 20 11:50:47 2026 Received: from mail-pf1-f175.google.com (mail-pf1-f175.google.com [209.85.210.175]) (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 1D39C3E5585 for ; Wed, 15 Apr 2026 17:05:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776272728; cv=none; b=Ak2NRo1vI1nVlfS17XOj4WJsfnkR8GijaMXiJ/XFyWhpJSi+IaurTW3i/L/lXb7S9Vqs8zODoroxV9BR/poXDKri0NfNKe6TFwP9xLOY34BAAUkNMdv+snZ3Brh+KMI0J71sl0vnLT8aXvfCOpwtWOyq1LJBjNQHnjYekl0hobc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776272728; c=relaxed/simple; bh=1Zn3MdRMyjWLIyrQcNN+35GVvqWTDtyPLOv6jmk0AwU=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=lU56aAdpEdpyPyqHImI3d0rok/CgUGOWhPclJ+tzZa22XAaU62URqSt+ppaaUZ4MDdLhhWqSjLcoLDsX+u0pasOQRUUQUNdTw2j9ymQXrOcJLigY9I/dJpn5EVhq+JNSMx2Z0sSMiL5Vqfbyc/DZHJp7I3dKCMc5EbfdY1+BQY8= 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=m3DiXkGL; arc=none smtp.client-ip=209.85.210.175 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="m3DiXkGL" Received: by mail-pf1-f175.google.com with SMTP id d2e1a72fcca58-82f5dc076ddso1179863b3a.0 for ; Wed, 15 Apr 2026 10:05:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776272726; x=1776877526; 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=veen0Vc8lnvEHEqHsNTL0m1ag5OPOf79GJ5X3Fcd3Ls=; b=m3DiXkGLSr6L5u3CBK3ogoVclqgKduUsQqIqGcYjV7dsAhteqnrPdqe828tv5JfRnw S/yVa7m3Xfel32YuvAsYHrYCcZ8dLuZHnCzCdWbX63UMT4p7yt9P1ugnrAkB3Ae6GthE FjHIpYFj+K8kQSCnD6yrZRZnIFBfVkUowqI2rXQMCX5+5PaMAduyURwYm2VsN/FbXOLa 9NArOJxH5aDzffWGKGdHWjkoPm7CpcFdXzv176PUWN6DsyfKJE4LsvhSzAhqSaUXrXLG 5jpxjJzmEXL/B5xcSWpp4nj1IU/paFK/Zr3csa2fsyq3O6J8v4/LIcDx+oyOr3LLPKXJ O7dA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776272726; x=1776877526; 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=veen0Vc8lnvEHEqHsNTL0m1ag5OPOf79GJ5X3Fcd3Ls=; b=J8X0ndc4XfoqlqeK/ReqWSsKiR5MsxLd9PxpCu6v+oGjK+x2XUuHzsJPwZeZXOdom9 HtIaqJ5AfG/DCF5ZKdbq9iZyptcuJD+sT+1thJefjUq0vq1CkFsAHqN8g4FGHBtf4tTo ivP4AWo/mO//IBZH30dEES2F7dp9rwSnXs6Hw2tvuHJ6gqiGdW1ApJA93A7kGxWOD3qK DzM3nnIwQYW4nUxUXgsqTP40ogrUAuA/J70DP2s3TcAHQHVaLsHBro7vaW0sRkQNJyGL kGi3NxabH2Qg4Z9k4Y7UjzpPcWjjZa4Vpu1UFDwniXtDxFPCxY6qg9xyr2iW9xNn8nGy iP6w== X-Forwarded-Encrypted: i=1; AFNElJ8uqcNncTB+EVuuuHm1DGMBVKn3oV3he+B3AJHR/n+p7uBjCNwNfM47t/az4TOx+LRCsOSGmI84PwVRN9I=@vger.kernel.org X-Gm-Message-State: AOJu0Yw4IpoxkwEnk72qXfZqf070csF00LCJmKJ+fM6fq8IfrTwf7W7B y8wm3SJ3E197vDbusgGs9ssL2vZJEnNP/+1Ofhfu2z7ySDUGj+qZ54h+ X-Gm-Gg: AeBDieuIKhLr7RNb3spFng+GsWKnQ+VC0QAcQTintnYV1vT6X0xPin+mmF77z0ycSIQ 4a553Zm49biSXsKNj/Qso3Wd/koEBmTO0LR4dSXv/EfRVR3mptvGJ6GOJqsKBB2EEd/X+sSrIq8 eRzyDUwR1YQbMA92Wff29NOTzgm22jPbgR3Mbuwm+ubt8dPGQhEfdXFVPZ/xayF8Lh1nM0gq3gO vnvZYoy9Y6w/nme/vpQBMvCr0DYmEt4gML3f8zCdTyTZROVm8YxTd7zvM6xAYrFNx0ssKaCrdBq VjSUBMHZ1cWfnb0QgQgWzmJ5905hoNO0sOXbPqHRyi5XdQQCdUnCA7pwmTFx3B4aOT/bR5rnkK3 WebUS+86N7jhCk0dVjmV6kHTfdjKozqAAUhkK69Luf6NPjeOgWBR/ZMDF6FsdJsP3iAOBAyU4ux 2PxHYqC1K9oJ1W+iVsaNZAVTy6VJEcZkgSqsD9 X-Received: by 2002:a05:6a00:8c83:b0:82f:1b50:d2f2 with SMTP id d2e1a72fcca58-82f1b50e2d6mr13938223b3a.18.1776272726443; Wed, 15 Apr 2026 10:05:26 -0700 (PDT) Received: from lgs.. ([2409:893d:1171:10e2:48dd:8f21:beaa:cec8]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82f6f52d45asm1522337b3a.38.2026.04.15.10.05.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Apr 2026 10:05:25 -0700 (PDT) From: Guangshuo Li To: "James E.J. Bottomley" , Helge Deller , linux-parisc@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Guangshuo Li , stable@vger.kernel.org Subject: [PATCH] parisc: led: fix reference leak on failed device registration Date: Thu, 16 Apr 2026 01:05:15 +0800 Message-ID: <20260415170515.3605095-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 startup_leds(), the embedded struct device in platform_leds has already been initialized by device_initialize(), but the failure path only reports the error and does not drop the device reference for the current platform device: startup_leds() -> platform_device_register(&platform_leds) -> device_initialize(&platform_leds.dev) -> setup_pdev_dma_masks(&platform_leds) -> platform_device_add(&platform_leds) This leads to a reference leak when platform_device_register() fails. Fix this by calling platform_device_put() after reporting the error. The issue was identified by a static analysis tool I developed and confirmed by manual review. Fixes: 789e527adfc33 ("parisc: led: Rewrite LED/LCD driver to utilizize Lin= ux LED subsystem") Cc: stable@vger.kernel.org Signed-off-by: Guangshuo Li --- drivers/parisc/led.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/parisc/led.c b/drivers/parisc/led.c index 016c9d5a60a8..b299fcc48b08 100644 --- a/drivers/parisc/led.c +++ b/drivers/parisc/led.c @@ -543,8 +543,10 @@ static void __init register_led_regions(void) =20 static int __init startup_leds(void) { - if (platform_device_register(&platform_leds)) - printk(KERN_INFO "LED: failed to register LEDs\n"); + if (platform_device_register(&platform_leds)) { + pr_info("LED: failed to register LEDs\n"); + platform_device_put(&platform_leds); + } register_led_regions(); return 0; } --=20 2.43.0