From nobody Mon May 4 13:03:52 2026 Received: from mail-lj1-f176.google.com (mail-lj1-f176.google.com [209.85.208.176]) (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 79C8A39185A for ; Mon, 4 May 2026 10:08:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777889338; cv=none; b=La0PRxPBy8Tk2b9fUGGsRyME54uMybTKG5x80J3t/EDi8DnpAX54FXZcXVg6Hjkihdp5n+keGIJ4SOU/w9OYqkqqIocf/taAZSCD3jx4fi067qAFm/sYeSdXseGOoSlxtEZmnP9ZD1Q33ho9Wu3Lx45Q5Zlq/9pKcdmKR0WojCg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777889338; c=relaxed/simple; bh=uzVYR2oxORfswsKO5073AqMtFJIBGpVKkfVCVIKVeRc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ON3+7jCKfSIguoOy/S+IkKlmp3bXuNx6T24Em31x63D84Sl7AReHEAbGS8aw4QVEs3Zo33AARJq37o3SjO0IA/nfy0DMFZZnTXmMBX5nhEoujK4Y8jUijs3gYau1a8AVUJ44YF+d4vQ6XFbG5IBuwUH3Pe4yr3NyyfcVFvZUw1M= 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=feK+iruv; arc=none smtp.client-ip=209.85.208.176 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="feK+iruv" Received: by mail-lj1-f176.google.com with SMTP id 38308e7fff4ca-38def541b0bso35539291fa.1 for ; Mon, 04 May 2026 03:08:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777889332; x=1778494132; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=8ejlKc5ArUlrjZTG0qqBOiFFqj7qKQRkSb3mwVckWx0=; b=feK+iruvb0ALyN0MADYxSac4gGLl7iEq0HanQj2RruHck/yCuiTPXK283kX+4MgmTZ 6zjO1Dmn+nyvuaFQ8XDxP2XMEMuLUnPBb4ZDhvyabmqr1JuGszN6AYw7ontpd/S+N7E7 ce7tndGDrKu/89VbkIxc5/qpzzhmJ8tsN8yJ5zMFJ2V+m2BAqkKxC9Y9zPLsDQ79Okhs H3iIIRe1NRkiyjCXk4P+b2VUK4TZUNkdRAGOn66GHEA1yhp5Xe0TkMA/GIsJFe5qQx9M NLfwjRw1RaoAqadmgFdFOwj0JX23mvyG/E0jCgt95wHwO2swHFIoN0r6UVndWCLHlcf2 Cb+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777889332; x=1778494132; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=8ejlKc5ArUlrjZTG0qqBOiFFqj7qKQRkSb3mwVckWx0=; b=JfVj+nF8Msw6QcXP9+YBU0eVlEQUXsG38/Nsld8EWfiFFMU904AMge5AnADd0Qap3y xPqWe/CajZ7hku1dhpIJyuXA1Z9zZgeieh0ul5/LGPEjeGwzMxh6LZyGR3HkUoMw27cf 3fAaS/kMBA+thnLFv6s+1U+9j4ehqvaYIrnmBYcshwrdAY3TgD8mGMPALBq2Pn4hUXM4 vF8PrfQU3nx8CSjldN4+ERWcTDwSPFeNgUVnngIIDyBY88ESsde1iVy/mXFFEhhEEDXj 6CUZpXPRC+K27xfutug4fVj1bGrvWWxZNdDNCngJ2rfmJ+zmK0YEHsZ08MbCNN8BfZNd Bc1A== X-Gm-Message-State: AOJu0YyxvJubuf1kTyvgOVTeJEMHUHE/cPb7yiQScpzqLyreD74SUGl1 XncBrknEXQQzLoryORkSwgKiWHCUiV2Ve3oROmeN6192yzzj1ePpgSV+f8Ygztx0g+6y0RjiXhE = X-Gm-Gg: AeBDietnyj+jn0afM6378bcNtPqRH5OJWbREGCOb7mykE2aAPEqYzgLL2+JT1zh2/oi L8DWBjkzNHGQ3OyInF8pdNPPIZdTgOkhQZtOw0DmIRdrQf1KFbwVfsia3sYHV7I5RC6AkAJnGWB f382HjWGbcw23pUMZu9dFuBC6aUKlCqMgy8emG7V1wLeIyqr9yHvUVt6J17sDokc0joWVZbXZDR 6DVzHj4RXPlXvLxavHSBpQmELy+WTlAXk6O0vgGnF7EQ4NEUrTM7SGVrERn/rcFS5ZLThhZ1OWQ lx4ZDeaNA5AEZRmwFcSZ1Lnvzo8rG21rwxcfHATWm8EP5+Qw8cKgVUlaxRKEAWXgUGTVE29gI1w s9636dvoLmkiDRymjqF7Zg6sHIBZbgetQHbOcYWVWVs9m0yOOHQmHHNWwWgec1UDUPp6jpoVTT8 7xPDHa3jUgGXWlUWEVHzLlBHm9c630v0loKnO0ZRajS+6FaVjfpgsEmcLUlU5l6knpbnEDixg= X-Received: by 2002:a05:6512:1250:b0:5a4:1198:5016 with SMTP id 2adb3069b0e04-5a862ec11a7mr2894531e87.11.1777889331651; Mon, 04 May 2026 03:08:51 -0700 (PDT) Received: from va-HP-Pavilion-Desktop-595-p0xxx.mshome.net ([193.0.150.248]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5a86645ae7csm1979099e87.79.2026.05.04.03.08.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 May 2026 03:08:51 -0700 (PDT) From: Vastargazing To: linux-kernel@vger.kernel.org Cc: Vastargazing , stable@vger.kernel.org, Arnd Bergmann , Greg Kroah-Hartman , Anatolij Gustschin , Andrew Morton Subject: [PATCH 1/5] misc: eeprom: digsy_mtc: fix reference leak on failed device registration Date: Mon, 4 May 2026 13:08:43 +0300 Message-ID: X-Mailer: git-send-email 2.51.0 In-Reply-To: References: 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 digsy_mtc_eeprom_devices_init(), the embedded struct device has already been initialized by device_initialize() inside platform_device_register(). The failure path cleans up the software node but returns the error without dropping the device reference: digsy_mtc_eeprom_devices_init() -> platform_device_register(&digsy_mtc_eeprom) -> device_initialize(&digsy_mtc_eeprom.dev) /* kref =3D 1 */ -> platform_device_add(&digsy_mtc_eeprom) /* fails */ <- returns error, kref still 1, reference leaked Per platform_device_register() kernel-doc: NOTE: _Never_ directly free @pdev after calling this function, even if it returned an error! Always use platform_device_put() to give up the reference initialised in this function instead. Fix this by calling platform_device_put() in the error branch before removing the software node. Fixes: 469dded18391 ("misc/eeprom: add eeprom access driver for digsy_mtc b= oard") Cc: stable@vger.kernel.org Assisted-by: GitHub Copilot (Claude Sonnet 4.5) Signed-off-by: Vastargazing --- drivers/misc/eeprom/digsy_mtc_eeprom.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/misc/eeprom/digsy_mtc_eeprom.c b/drivers/misc/eeprom/d= igsy_mtc_eeprom.c index ee58f7ce5bfa..4ca3e567c49d 100644 --- a/drivers/misc/eeprom/digsy_mtc_eeprom.c +++ b/drivers/misc/eeprom/digsy_mtc_eeprom.c @@ -89,8 +89,10 @@ static int __init digsy_mtc_eeprom_devices_init(void) return ret; =20 ret =3D platform_device_register(&digsy_mtc_eeprom); - if (ret) + if (ret) { + platform_device_put(&digsy_mtc_eeprom); device_remove_software_node(&digsy_mtc_eeprom.dev); + } =20 return ret; } --=20 2.51.0 From nobody Mon May 4 13:03:52 2026 Received: from mail-lf1-f42.google.com (mail-lf1-f42.google.com [209.85.167.42]) (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 CB44A392C24 for ; Mon, 4 May 2026 10:08:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777889340; cv=none; b=FhpARyJEsuK0ENk8qCJXvZCUY3BIjFMU0Qoio9WJuKpIDI89sccewIpKcl8uvggRTiGnKORfmqlz7JEdSiEqSNvHD7T7Hjaa8io8xdWlrT6af4u5p95UsqjiUWbPkwNiBMH0xE3cS7epqnb8jC4n3f487LjSjpobnSsyiuwkPRU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777889340; c=relaxed/simple; bh=Cy4wsn1PZK5S/bvm2NwxmGupgmnGnk0WNR3lAlPVFs0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Z3nMO6qCWuJlNneEelVNR7Q2l6yYFodI1OzU15KWleftJiG2wvrBbiegYDSNSjmHnc0UIf8OL+SizxwXXSQUuwakmVN//E48DEh5MJn7d7zhiQnzgIEi+CK0jenKM46fUjW30KV7BpDKTi08REzKfsZzTe1ojeE4HLj6fL1t6hE= 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=W/S4OwK/; arc=none smtp.client-ip=209.85.167.42 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="W/S4OwK/" Received: by mail-lf1-f42.google.com with SMTP id 2adb3069b0e04-5a40502e63bso3904173e87.0 for ; Mon, 04 May 2026 03:08:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777889333; x=1778494133; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=/NFXtpfnoiIuj26mCFxMjJStgQUFP3eBujw2rICs2aY=; b=W/S4OwK/mDH9qgFdaX9V/LIcw77jeLCazGPcXBh/NeubLWIl8cTu/IMSRTOj4OvgZo UlvzsdbJm4aiRFbTGD/pW3W0VEXYN3393v5Y7gLDAmH/VKNU0uRh4JpdapTX7kTiJ8eX qg22rnknZavXlVaZKu06G4BT6b9uRwLG7MjkqCWtPpbhyRaE01A/WLBAGceq33qWFs2K UN/huOPySHgLg3bZ7n51fWSWwdYkCfLTb808fl5v8Xfh9F5t+/uGArZ0S0QZsj6h6idH psGdctEpG7IeF87SuO7yKdqrh/94GXNBBBVYa7M/IuUWIoXHWkVC3zWtpgL0nDeMAue7 PNnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777889333; x=1778494133; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=/NFXtpfnoiIuj26mCFxMjJStgQUFP3eBujw2rICs2aY=; b=VTjcvTYsgsY83vZHyZkOJZcCZ2MU20DCxAwaAlhwAaz7mwMS009zrwQqKy7mLhFQdX /tC7mZbDxgVhgzlHiKIEvrUpn80GvJSKx6W7CWpUnimV4EBADtH0svSY1T04PnGSXKHL p+yDi4QbK+KzPEeVLR1Zia4vMqkWf9KQnyX0RiRVFhjKo2uNDaOYEnEkUHpTkVNkf1AM p224xnpeWVnSxkGVoeBKyAnElItMlOArD0DGaBNaJSHmjZZP3Mg3XvHv1Ro+WWUMqG/6 KwzTD0GX+/rudR6mFu5o7WSENd1CJMVJU4QpbU0f/cSzCUMQvktTtBHlupJidsPa0hC3 R2XA== X-Gm-Message-State: AOJu0Yy0zVSBJxVMtNKq7i86JyomRIunottdahIHbP3dqFDPUuCy8jcA rTidEf567t2gdtSESLmlJ6XSSH8CFazhok1r+GEmJSk6iUDoV6coDbOzTrfTsP3QbeBtwk0ZJq0 = X-Gm-Gg: AeBDieu7VKnx3/Sm4oNNcTYTHVRzFGiLY69yFkJ/rvthRY9ZChIJ/ZsFMSjkgV77K05 wZ0uwP/zVi/kPd5EDDwf4B0M0eEGYDW1sZDqkAOy6qWey9enV0r4P9qUD5K4hZnH3bFsFnDZLSQ qOMc4/1Hsl70p6TC/q1F3t1IHx3lL30X1JyI+uOH5bFWbibDF8UZGXtksR2cfm3SZdvf9BtX3sh NIPSCqaHF9HnM6soYdGlHvMVnsKYrPBKfQFax1IukuC/gM0KsDyQmUGPS1a/v3XYqDjDQ2Eyn+4 Uu96dOb1lvhM9lOynTl3qWmnmkIgjbd5A4HYP3HDKP8FzAtQlw6vgNzixdOuTOrpHBh9Zy1ahrL 7fvNIdVp39YU4Ve9kbLhf/9Si5+DWLT9Zk5cFreR+XoXfdgvH6EFb2aaKrbakUIkWTDbe9eXZ/N psgDwpd5F/nivMa+CjYLEmFgOLOWHiGVeNN8JI01ZZWdGQt0lZ0yvBb1GjBAYO940f6XIT0EZkR dR4pxV7mw== X-Received: by 2002:a05:6512:31cf:b0:5a2:bf50:763d with SMTP id 2adb3069b0e04-5a8631c8222mr3274301e87.38.1777889332874; Mon, 04 May 2026 03:08:52 -0700 (PDT) Received: from va-HP-Pavilion-Desktop-595-p0xxx.mshome.net ([193.0.150.248]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5a86645ae7csm1979099e87.79.2026.05.04.03.08.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 May 2026 03:08:52 -0700 (PDT) From: Vastargazing To: linux-kernel@vger.kernel.org Cc: Vastargazing , stable@vger.kernel.org, Benson Leung , Tzung-Bi Shih , Guenter Roeck , Gwendal Grignou , Thierry Escande , Enric Balletbo i Serra , chrome-platform@lists.linux.dev Subject: [PATCH 2/5] platform/chrome: cros_ec_lpc: fix reference leak on failed device registration Date: Mon, 4 May 2026 13:08:44 +0300 Message-ID: <990a6407ff9b143bde6ea2bd8b32e9346ab756c1.1777889235.git.vebohr@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: References: 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 cros_ec_lpc_init(), the embedded struct device has already been initialized by device_initialize() inside platform_device_register(). The error path unregisters the driver but returns without dropping the device reference: cros_ec_lpc_init() -> platform_device_register(&cros_ec_lpc_device) -> device_initialize(&cros_ec_lpc_device.dev) /* kref =3D 1 */ -> platform_device_add(&cros_ec_lpc_device) /* fails */ <- platform_driver_unregister() called, but kref still 1 Per platform_device_register() kernel-doc: NOTE: _Never_ directly free @pdev after calling this function, even if it returned an error! Always use platform_device_put() to give up the reference initialised in this function instead. Fix this by calling platform_device_put() before unregistering the driver. Fixes: 5f454bdf6353 ("platform/chrome: cros_ec_lpc: Register the driver if = ACPI entry is missing.") Cc: stable@vger.kernel.org Assisted-by: GitHub Copilot (Claude Sonnet 4.5) Signed-off-by: Vastargazing --- drivers/platform/chrome/cros_ec_lpc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/platform/chrome/cros_ec_lpc.c b/drivers/platform/chrom= e/cros_ec_lpc.c index 78cfff80cdea..cb3ff76d29e9 100644 --- a/drivers/platform/chrome/cros_ec_lpc.c +++ b/drivers/platform/chrome/cros_ec_lpc.c @@ -892,6 +892,7 @@ static int __init cros_ec_lpc_init(void) ret =3D platform_device_register(&cros_ec_lpc_device); if (ret) { pr_err(DRV_NAME ": can't register device: %d\n", ret); + platform_device_put(&cros_ec_lpc_device); platform_driver_unregister(&cros_ec_lpc_driver); } } --=20 2.51.0 From nobody Mon May 4 13:03:52 2026 Received: from mail-lj1-f174.google.com (mail-lj1-f174.google.com [209.85.208.174]) (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 CF4D5392C27 for ; Mon, 4 May 2026 10:08:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777889342; cv=none; b=tEOmY7eDzTv4+F1z3VMowVNPwK3idMHslgEjBbi0/wXv5x67pJjWkIoD+4wvyoK6zpWe2I+2IB0w1KU1igobRRcyJcqNW+nmxzZgOP7JM7koh4cu9hvl3Yxh8YpysgrGKtV2dgmqcJx39p7cM+GlpjgxpBhfKIjHjInMzu9NFY4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777889342; c=relaxed/simple; bh=ecvD7cXCIG9VrEOOchfKBfniIVf6VtECCyv5SmPD1kI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KZ+HsOiQu61ZFiGZ7LNgfu4AWUwdzOLCj2nr+OdmoDwW50RgQPHjgUtH9E6oQm7OCGHagLOBbDy9LLt2ircZ3lwkxqqqGCUbsJrEeunXnKtVlJRijIJ8dx3MhRBi6+r/DGdreCbhCaZW1GOd+L8/1t/j0QS2rWp4RnZgE47vBbI= 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=aWni/hly; arc=none smtp.client-ip=209.85.208.174 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="aWni/hly" Received: by mail-lj1-f174.google.com with SMTP id 38308e7fff4ca-393800586aeso14211311fa.1 for ; Mon, 04 May 2026 03:08:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777889334; x=1778494134; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=rmNwLKC44+y7Cqt7OcmRZ9UY7ReRqF1/k1kRQnz8QNY=; b=aWni/hlyQIP+QilTm5Xe1LiBFc7ExKzkwyvFprVTmEXAQYpoYD38Zrfi5q+nwrBMkJ LQlsDCK340GvJWNeN+HtIEo3D0mI404aYQMjAh+Qse2+F2TJ9mIdnoqIueu4qXPvrY5h 18YIqDhfiCyjNn3Fq2jnu3tnDvFS4wKevMFIudj5owUxkNT12h1SI3BqI1Zb1gY+vYNf EE0hiEKADwCqS3AHgki8mVDUhbGB85GzEaFbkhoSYNLlJzdngnSwIoBINyEStUw0AUIy 5GFB8jN2IWqPeNrczs4+zi61qB67J8fOW63BEB5xXHO21Wn6QjZRWQ1i11aGZZ6+5owV 2UnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777889334; x=1778494134; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=rmNwLKC44+y7Cqt7OcmRZ9UY7ReRqF1/k1kRQnz8QNY=; b=TtcBjgPdCL2orB08wG9PDkU2+qu8ePh1M9hwdZ5EyyQzPf40lvGHfakRBRgxaM5DSp KSk5EjJO29XzxE/BuYqNbgNVv1S0i93RvTn7eUMpAR70V6VvOy34QS+7kNMie4NAMYof +752HCcpv/CAfeflJLatLVUGM9Gt3mVkRb4qtsyoi5D8OXyZFs6zP+8cUDZMza0pI5l/ zJMfH9Rh94KTKbrozttTVWuCyWNhepezRkUUvnbwcgPxqktEOA7xrDEjnx1o8+xPb2VE 9M0vZvkqJTnI8gVIJ0scK/naObFTCwuEWl+1I9E7EaqeQYieHpDoC0+cwTsBs/dtsWYI laCQ== X-Gm-Message-State: AOJu0Yw5RJZEtXO2A8mL6MR067N36QnXccc3c3AFTcbcpdp4FNEH1nKX 1WzNo2zT93RyfQ9WRoWt6kWuHUgQe0HGprT5e/lxfGCw+OXSMe1W/OA8o19EAv/CF+Ok4UdGFRc = X-Gm-Gg: AeBDies0l1+ieHzeHvOnmdfeYNynGRNzg1HATYzlR+Ndc9dLLCaMlbxHzupNLxxCrG+ ziT/QbiO8sfwNBGa1bFvES+hzcYJfrQbVa0TmE+iWDIn4zYNjHWadr+sBKSOQnD+9bnvSTn9MEy WGH+pdaHsRRsrQexbiFDVrlN9s1JzGzSNwHalS1MsftaiYwyKtoG1I3bIBofQbIIm+215PyCOax mNJPlTN8SBub3RHbKuGOv3t9JWqyAuk0oGng1Pna/2Wda7nCcyhoQKrgFf/0tuGHL0pbAXbweui 63oCdqpT2M49oqcblO0HkOYWQg1Cdd11dYoiKJr8Sm7LLm0SzYheU7GUAMnIYag3xzf6LzJx3+F nRz3PydS4n3myepLrMxT07biW/GLecQtTA6zFG/SxklGYpYRCbJ5fORh0/jdxhKGG6nDWvYejHR DqVDr5jivtissJm0kyv+a3E5b6sC1cM0XVMz6oTAKmEt0f+Q8l1UQP/WHyImyUz2Q3HFOA5Jw= X-Received: by 2002:a05:6512:2208:b0:5a2:c962:59f1 with SMTP id 2adb3069b0e04-5a86215f89emr2358405e87.16.1777889334019; Mon, 04 May 2026 03:08:54 -0700 (PDT) Received: from va-HP-Pavilion-Desktop-595-p0xxx.mshome.net ([193.0.150.248]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5a86645ae7csm1979099e87.79.2026.05.04.03.08.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 May 2026 03:08:53 -0700 (PDT) From: Vastargazing To: linux-kernel@vger.kernel.org Cc: Vastargazing , stable@vger.kernel.org, Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , David Woodhouse , Lennert Buytenhek , linux-mtd@lists.infradead.org Subject: [PATCH 3/5] mtd: maps: physmap: fix reference leak on failed device registration Date: Mon, 4 May 2026 13:08:45 +0300 Message-ID: <6717e0b2a6244ee4e691dba03eb8c790c202e89e.1777889235.git.vebohr@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: References: 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 physmap_init(), the embedded struct device has already been initialized by device_initialize() inside platform_device_register(). The error path unregisters the driver but returns without dropping the device reference: physmap_init() -> platform_device_register(&physmap_flash) -> device_initialize(&physmap_flash.dev) /* kref =3D 1 */ -> platform_device_add(&physmap_flash) /* fails */ <- platform_driver_unregister() called, but kref still 1 Per platform_device_register() kernel-doc: NOTE: _Never_ directly free @pdev after calling this function, even if it returned an error! Always use platform_device_put() to give up the reference initialised in this function instead. Fix this by calling platform_device_put() before unregistering the driver. Fixes: 73566edf9b91 ("[MTD] Convert physmap to platform driver") Cc: stable@vger.kernel.org Assisted-by: GitHub Copilot (Claude Sonnet 4.5) Signed-off-by: Vastargazing --- drivers/mtd/maps/physmap-core.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/mtd/maps/physmap-core.c b/drivers/mtd/maps/physmap-cor= e.c index dcda7685fc99..45d79ca622c1 100644 --- a/drivers/mtd/maps/physmap-core.c +++ b/drivers/mtd/maps/physmap-core.c @@ -654,8 +654,10 @@ static int __init physmap_init(void) #ifdef CONFIG_MTD_PHYSMAP_COMPAT if (err =3D=3D 0) { err =3D platform_device_register(&physmap_flash); - if (err) + if (err) { + platform_device_put(&physmap_flash); platform_driver_unregister(&physmap_flash_driver); + } } #endif =20 --=20 2.51.0 From nobody Mon May 4 13:03:52 2026 Received: from mail-lj1-f178.google.com (mail-lj1-f178.google.com [209.85.208.178]) (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 CB2043921CD for ; Mon, 4 May 2026 10:08:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777889342; cv=none; b=XZofaJjRehadcAoQn/0yVeS1nr6PJuHwejXUy4rbO1d+8eGcbzur/joSAPFFTLmXtoO8kY9bIlfBwqm0LJ/YVHXCyV+mLxgoOltqKHCs7a4PY62k5ynOq8IeVHMqXIifu/5moUgBQpb6H4KalcovMBs+l1Gz5qteoRl4uc8Gv3I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777889342; c=relaxed/simple; bh=pcbrlB3qHsPLc/y90rnx1LrG5b7iFx58tWFuf97lMZY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eEzaCCc1lygyZKmI0cCRSgMczVoAqUupheHpwO0HFH5CrVMDiXAbl0BOuXA/uXCJ54+lkI/LUPU9pDuRkPn1vbFjGWCb2DAVN3aofbFrW6I3WdtDHS5PFxr2blcd29I0ced8n2nkXHQLnnIUmcmXSIzvsUGBBCF8tu/k06ug53s= 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=cKW7JyjX; arc=none smtp.client-ip=209.85.208.178 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="cKW7JyjX" Received: by mail-lj1-f178.google.com with SMTP id 38308e7fff4ca-393a49d2e5eso4819831fa.2 for ; Mon, 04 May 2026 03:08:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777889335; x=1778494135; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=fUsuLRSeuIGkFfh6WNuAvk/R1MMvm5m1C1zWcRocwNE=; b=cKW7JyjXHGgh6mBa2l2a8jd40EAX5sw0SGAXxqQFYZFMqJLhudJJTojaBfnSJUqbOj w5BjRfybVM9L6dC7Jn/+Fkr4jsvL2/n2vqEB2P7MnRuuvnPtdWQzhptnWBVXuNYPbuap QOJY22o9bjxeYQ/k7Ftl21S5SQ1yv2kvkR9XDaWmQ+OhGLe/1p1jd9Cvc76vGcZa4TVq ZXdrTu0iXq7rlQK6IXjslucJviAi+WgrTlB31XjBOeAUXeJmsfXDuilGkZhliM4+ZHmW a/LNpYwKlfvwxDEX4MWlQRzxFzDLQPJ6R5LzP0Vjdc6prrrAnhzAaLdwOo1bmt5U1+0P STxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777889335; x=1778494135; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=fUsuLRSeuIGkFfh6WNuAvk/R1MMvm5m1C1zWcRocwNE=; b=avDWYPVb4LiQzrHEUxgS2i/oRIgBRxHLjmtMfAqEdD+VUUk2KEIln8pLe71DdZ6qu3 QfANHSmy+CLqWM3vYaiY9Sw1J5xarBn2nkyZJUGwRyzb6qAQh69oNZq9QhIArAYjuPfJ zMxIIWE64yA3WzyF/P51KFKqnPox1d4XdbjAY4aBXSUek4VP2iMFu3af7zBXFjAM6lmK nS3mIeuzTJ1/HL7nzK+K/49nTvK0dhxMSaSL4KmF1ODmeBounhhb01MtIEirQKyvx+jM ztpz65j6TXi7zEhstO3T7UgUsg74W3bGXLhllJtiahDQmxXL67rdBbqua8luCfX5rKLi ItUg== X-Gm-Message-State: AOJu0YygnnHeXASPYogtOPBspGCZ34aWclfxKW1FJe1oLmyt/Dy/XGdi AQhidR3ARHpsjGrBO0paqI/lN1M+xbn+bsZLvHYi0MD5XfHuss9XWB7uM7NnbfY4p6i4+JT0dWk = X-Gm-Gg: AeBDies9hTzFavCkIMMqDCdZAgxphslm2k1wuC/Zma768vSnSz8ij7c0LojXXg3Rspj evpNgQxG8lSciMkIwf/FJK/WNRpxGBgMHSEGVUiX47c2J81v7b/5L8CJtWCF08JnSUo080twJIj qD9dMSky/lo3EVs7BGzgaStdrCcIGQTJf81Ei8dFR9t9oEKaQKLejTrxh7MD8sC1R0wgIeIsKUw zC19QYEMY46LmuR1/aiHyA32AsTHF6PHGcFZlb1rUO3Th5R4NgUhYr+XOlVEdxtdc9L6T+sm6sm iqwYw2jFb8uS6jGnA21/lLNMBXL/2SipluPMVKoIqQBiWqL1GoxwvHH97vHIpsdX2hdppnIuvet gZfTTgJgcCGNUx3NFXxVjl+3Th87I8ItHs7goiEQWN06Obu6iPR6OIITSpDDpjyvDghScxKOL50 CttmQtflTzQfbjuzcLya5xHKaXveyoYR83bErz2/MCX4WtidwnlIG4pXayVVvCCuc4r0/zcss= X-Received: by 2002:a05:6512:3c8a:b0:5a8:6ba2:225a with SMTP id 2adb3069b0e04-5a86ba22265mr1869874e87.39.1777889335210; Mon, 04 May 2026 03:08:55 -0700 (PDT) Received: from va-HP-Pavilion-Desktop-595-p0xxx.mshome.net ([193.0.150.248]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5a86645ae7csm1979099e87.79.2026.05.04.03.08.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 May 2026 03:08:54 -0700 (PDT) From: Vastargazing To: linux-kernel@vger.kernel.org Cc: Vastargazing , stable@vger.kernel.org, Will Deacon , Mark Rutland , Jeremy Linton , Sudeep Holla , Lorenzo Pieralisi , linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org Subject: [PATCH 4/5] perf: arm: pmu: fix reference leak on failed device registration Date: Mon, 4 May 2026 13:08:46 +0300 Message-ID: <243cb3737b41fae32a09117c17809a210395e69f.1777889235.git.vebohr@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: References: 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 arm_acpi_register_pmu_device(), the embedded struct device has already been initialized by device_initialize() inside platform_device_register(). The error path unregisters the GSI interrupt but returns without dropping the device reference: arm_acpi_register_pmu_device() -> platform_device_register(pdev) -> device_initialize(&pdev->dev) /* kref =3D 1 */ -> platform_device_add(pdev) /* fails */ <- acpi_unregister_gsi() called, but kref still 1 Per platform_device_register() kernel-doc: NOTE: _Never_ directly free @pdev after calling this function, even if it returned an error! Always use platform_device_put() to give up the reference initialised in this function instead. Fix this by calling platform_device_put() in the error branch before unregistering the GSI. Fixes: d24a0c7099b3 ("arm_pmu: acpi: spe: Add initial MADT/SPE probing") Cc: stable@vger.kernel.org Assisted-by: GitHub Copilot (Claude Sonnet 4.5) Signed-off-by: Vastargazing --- drivers/perf/arm_pmu_acpi.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/perf/arm_pmu_acpi.c b/drivers/perf/arm_pmu_acpi.c index e80f76d95e68..c2defbc32ad9 100644 --- a/drivers/perf/arm_pmu_acpi.c +++ b/drivers/perf/arm_pmu_acpi.c @@ -119,8 +119,10 @@ arm_acpi_register_pmu_device(struct platform_device *p= dev, u8 len, =20 pdev->resource[0].start =3D irq; ret =3D platform_device_register(pdev); - if (ret) + if (ret) { + platform_device_put(pdev); acpi_unregister_gsi(gsi); + } =20 return ret; } --=20 2.51.0 From nobody Mon May 4 13:03:52 2026 Received: from mail-lj1-f171.google.com (mail-lj1-f171.google.com [209.85.208.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 7D9543932D4 for ; Mon, 4 May 2026 10:09:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777889344; cv=none; b=QUtQABLOpp3tx1Q3iHER6atv/J2K/LA+ExUjETr7jzoeffnMdZp3S16tB1xUjADklA2tFHi5lPJGGdsAQvzXpt4J5VndiwkJYR0vTPnNKBx6+4LpYSpL3IdAEnA85lWxsVYe3D2h8YbuVnwwhQ7Am/QebDB1YYoAaZ5oWpo73xU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777889344; c=relaxed/simple; bh=Zs9WNTC83oSjBnoN+C/Zgou1KF6Ibnz5FPkh61SSYcw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jTGuVR7ThRPS6v5axnMApU1v2WnPw5qG+v+V2vFACvJ4vdIrEFTJCcqsWL2wJeiJPIkGsOVpqSJduVTL5ej1v9jduB8TvqBsCTxz+W0sT7Sg+pk9p5eyPgdIbHLlviM44zgkyMRMIeJKEIyYXHa/zk/X+hEOAiRzjx4a0In7Wtk= 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=Gawq11ah; arc=none smtp.client-ip=209.85.208.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="Gawq11ah" Received: by mail-lj1-f171.google.com with SMTP id 38308e7fff4ca-393800586aeso14211911fa.1 for ; Mon, 04 May 2026 03:08:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777889337; x=1778494137; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=efcgj+nt9ZDETRdVUhLvA9ywV/eZR7SxjX6DhlexZWI=; b=Gawq11ahWxXiiP576uVGZqUD62NEN3CxSvw34/7mzMZ81o//CHVCzHhkVuDDjflxOE myr5Lz5C4Zl6MPh0XQczmfT7Pq67V757H8IgoLQZDHzww1KXd2sn/AJSzyJWSsMRNFjS v6+PMD5vtwGww6VcNNQ3cyPJ4ApvgVnkuHmHXMYM0qS/9yM/f3hmAnsgQX/mQd6R7grF T6mzwEl2piRy2hf81dcpu+JdsuYZQDYB6Cusn4oGOplf4v98+5RWMwVNYQhi1cDPX70q HQNSKL3KOmhb77EJskPo79rDH3nlc5x+R+Gr5TgjkNoSNSOCeT1unvEjDL3rHzBmhLFe 6vqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777889337; x=1778494137; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=efcgj+nt9ZDETRdVUhLvA9ywV/eZR7SxjX6DhlexZWI=; b=FKR/ASwL9AeFlwWFCQE81ZF58R+2MjagykoRO0w8iF5MeC/HvNcxa81KSpmFtuMp3K VziblIgbKKIKBJKFWezg/kZY33KwGuhgY1QuEomccUNy7qFoRpb65OLixVrb6pw6z/Rk YVahu3lBaswwF2hVjGa7WGdSaWsJuPv9MvRlD7qM0ascVl6BP0ZW4hw8axk3uXug6cVx 4eDdmUwsBLucI0Q/rJuSTIN/VptERjCle5Nmcv5v9ux5Y7Y3PTlNpdnfYOnDjAzO11jF SFiHxxzWkC9J2+r6JETLw7tUH+x19TNvnFuiq8RZwIxhf7ytL+lrzRERdO1IbJAJOWRS o9wg== X-Gm-Message-State: AOJu0YxuquG92MT4ehvdc3UYM2fboKwIDHoai0dYd0Rycqv22OWPsZBl h8znafBoULZMbEjC5oWjjFx1SgRkYlgDjOoC6E6nzVT6ypfzfxuYh0160HySQQDwJ3zCS1bzta0 = X-Gm-Gg: AeBDietF5Xu+dFkniUBXJzMWx+/NZrQKxCDnwpmeXB4bY6m0IJ/XdF+kCGTMGPhhfk8 p403qlx6pqLQUplG8vjP3NRBOvgISp42PWTQlg4K8J+r73ACpZxjUPVwIEwr2pRZ4qUxRwU+GZQ CvgHYedeeQgHByHRCvHwfONQSbwOXR0G6b//tJKiy07hflHFMBRL0UzAARoREkJkOtG+mqJ4EB/ nxs7sMqWzIUpmFGZlXDzHf6gWRl3L1uWyyVEWTEvWs2uaSe/3EkL6MoKokvBrmItRBOXhp/vWg3 hX1VI64R389NA/S2oV3Pq9RPWH7gsUBBmtUaf9ZAORMnZ3QlV1OjsaqWUEyAJatF5fSP259Iskr 6DfqncA3oRUramFtFVQqi/B8/BYUQWNlWjHBoD9c5VOMCt4tVxTWpvHnyELVBsrQnQKfbWN7xIW psJluEEKvXOOyTSiet3r5k8ircVD7kuHiVEsiFVdY65qJDTfJIcJV3yy++XZLzTpMRZQsh/lw= X-Received: by 2002:a05:6512:39c4:b0:5a4:5d0:2892 with SMTP id 2adb3069b0e04-5a852741d37mr5443285e87.19.1777889336425; Mon, 04 May 2026 03:08:56 -0700 (PDT) Received: from va-HP-Pavilion-Desktop-595-p0xxx.mshome.net ([193.0.150.248]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5a86645ae7csm1979099e87.79.2026.05.04.03.08.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 May 2026 03:08:56 -0700 (PDT) From: Vastargazing To: linux-kernel@vger.kernel.org Cc: Vastargazing , stable@vger.kernel.org, Lee Jones , Vincent Sanders , Andrew Morton , Ben Dooks Subject: [PATCH 5/5] mfd: sm501: fix reference leak on failed device registration Date: Mon, 4 May 2026 13:08:47 +0300 Message-ID: <6b4a9f5ae8a316b6f07f72f2fe3f0b8fc5f18dff.1777889235.git.vebohr@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: References: 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 platform device allocated by sm501_create_subdev() has its struct device initialized by device_initialize() inside platform_device_register(). The error path logs the error but returns without dropping the device reference, leaking the memory allocated by sm501_create_subdev(): sm501_register_device() -> platform_device_register(pdev) -> device_initialize(&pdev->dev) /* kref =3D 1 */ -> platform_device_add(pdev) /* fails */ <- dev_err() called, kref still 1, sm501_device_release never called The device's release callback (sm501_device_release) calls kfree() on the containing sm501_device structure. Without platform_device_put(), this memory is never freed. Per platform_device_register() kernel-doc: NOTE: _Never_ directly free @pdev after calling this function, even if it returned an error! Always use platform_device_put() to give up the reference initialised in this function instead. Fix this by calling platform_device_put() in the error branch, which triggers sm501_device_release() and frees the allocated memory. Fixes: b6d6454fdb66 ("[PATCH] mfd: SM501 core driver") Cc: stable@vger.kernel.org Assisted-by: GitHub Copilot (Claude Sonnet 4.5) Signed-off-by: Vastargazing --- 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.51.0