From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) (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 A4B103CBE7F for ; Wed, 15 Apr 2026 17:42:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.181 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776274932; cv=none; b=qmfdgv50fq65NmYKPDs8Np/KkyrCcXTp6poEl3jP2PaTt0/WT0M+8JGpdc1CFJvqugSJyt5LidnHfTAP8IA3adtJdfe+IomyjW+V3DUPJVcIzdv6rnKdDHJp+7X6Vh1nUmtIFTZexU9lkfdoxRl4YwqFJT3V9oN2h2BfzqgRd5s= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776274932; c=relaxed/simple; bh=OfEpoQQCvbruyEEiVw52qe009gbsqV/tWcOBBRa19tw=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=X8OR2EPVdf5ztvFRgD7lZbuvF+LgDz+bXP/U/jGFUgQ03JcSNLq75lzaWJYoChr4jbJQ3Ef91AIWOf1h95U04Xe5X7/d88SSKAqsAuQvxGvoTC+upN26R+h5ntFvOf4K/+FiJZHYwWSHSDV4G5bFysUzmlBLYGfjX+m6OCs3XSU= 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=XBHfCfzn; arc=none smtp.client-ip=209.85.214.181 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="XBHfCfzn" Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-2aae146b604so50880115ad.3 for ; Wed, 15 Apr 2026 10:42:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776274931; x=1776879731; 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=NJ/g0M6nIzsGKbX6brZJSUwMyF1dOX6znsTMtk5A1OI=; b=XBHfCfznBWOBlNUya6LVCeZPr/6rGOAwcS75+nsMKFYDSdAYZDnjUx1U4ynNpNCSyZ RuZQfPgey20aBRklXxX8gZCb8gQ/6DdhqRfSl22ey92r3CSm9zoXPVZ2e+z3aphfyOAg o+kVCRkS6YjUwc3O1o2RE4c/D+VOhK6+mOsG8jFftQSuIyg03fcgc2Q8J3OZA4P7F2Nn Nhi66mrEYeqy9wI06141OJ5sibnhs89hw20cvawm7wE9d3/AN/ln/ggMpimewVZL20g1 vVzNFHwcwvp2EmBwekNFetxPoQgL9hkOH9yeMPXA04eZKQnqFL1UlY1hDr10/L8FLDO2 dNeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776274931; x=1776879731; 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=NJ/g0M6nIzsGKbX6brZJSUwMyF1dOX6znsTMtk5A1OI=; b=YYSoMaFlh0eGtMNTKDi2LMKh7T/+HmznFtL2KczEsQe9CUhKyzaVUwaHh35U1mYOAZ yrRutbM115e1SURdIna3TzNjGdCVvmPP0W65RaZYN22IyZVOFoNfZl4260JcziGmyHX3 0euqUPaufdlDCHrn1EINxm0ukGkwpIEWM3Do7Xp18TEh27ZMdsUOMsW0Co5pm7vIOw+V n084X95W3ONE+ICrjdlMyaksTYnLm6gFjGR8FwnmU8Cnas7BqsaB28/91uTNnoQhvXps vkd/gSlJ8wbBGFzAZ3xwHH+nwnMMCWfHtlSc6XPqIWKC+irGeaBpR+Qt5VTGwYBzIsNE fITg== X-Forwarded-Encrypted: i=1; AFNElJ9DGsht2rS1qRC2329NXuxjX20pWSVq0ctHsTxI8X4hNBpGeEVQxZVKBHxwWBc19v/vlJM0VZOwCVzXmBI=@vger.kernel.org X-Gm-Message-State: AOJu0YzXXSg148Ub1p95AIAONRTfkGi5aRfhIKvNB/f4sa4/8MfDnoNq Kre/x7ZLjH1lnnrm0znkLrDJ2+QV1kTHrEXOvlmROGYLTHNxVl++fJ/rk2CQnuQp9hKpQw== X-Gm-Gg: AeBDies3qaBJZ6uOww1Suesj2yZahh6EnImUfpdvnQ0OjVbS2DAPe7q4e9mCs/pWzKE N0WN0r2Hsramndx6pIbf5r1ddJbrtSh3KDDPafVpc6vfvEID4+agFqnzR/Gd1+fft4MqvcZ64Ku JKwjXR1ODGcZbKrPe+aA3aPh1B8CoSMpqE+Szpx1BU1WHburjWHQFwclLk+XOLZpnxbU/DpV2Rd pu0mUIIwtmE8kOvbk/QAsEmOPyrEGnN4rjuGHRmu3pNiBUALLd84yG1sAF95pa70RHmh1lW6+e3 6SfYDT7LNID7EMXbK48IcuIrZzyLqj1sNFO8+De4k8/xEOq2Us3hGRO/iU8Qfn2siW8zRE74ETP XUWmuVnRBh/oCL9TX2RUJw7JjbM3FqfEkllpsimCTbZ22OHtJd23q4vInc0jMi03XpDUSJuboX/ gp2FNzeIbnRb1QkIsdUaWzCKqc4BYzLBrugYTP X-Received: by 2002:a17:903:b0e:b0:2b4:5cea:f61c with SMTP id d9443c01a7336-2b45ceaf83emr139663995ad.4.1776274930985; Wed, 15 Apr 2026 10:42:10 -0700 (PDT) Received: from lgs.. ([2409:893d:1171:10e2:48dd:8f21:beaa:cec8]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b47829a4eesm33777805ad.60.2026.04.15.10.42.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Apr 2026 10:42:10 -0700 (PDT) From: Guangshuo Li To: Will Deacon , Mark Rutland , Anshuman Khandual , linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Guangshuo Li , stable@vger.kernel.org Subject: [PATCH] arm_pmu: acpi: fix reference leak on failed device registration Date: Thu, 16 Apr 2026 01:41:59 +0800 Message-ID: <20260415174159.3625777-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: 8bit When platform_device_register() fails in arm_acpi_register_pmu_device(), the embedded struct device in pdev has already been initialized by device_initialize(), but the failure path only unregisters the GSI and does not drop the device reference for the current platform device: arm_acpi_register_pmu_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() after unregistering the GSI. The issue was identified by a static analysis tool I developed and confirmed by manual review. Fixes: 81e5ee4716098 ("arm_pmu: acpi: Refactor arm_spe_acpi_register_device()") Cc: stable@vger.kernel.org Signed-off-by: Guangshuo Li --- 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..5ce382661e34 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 *pdev, u8 len, pdev->resource[0].start = irq; ret = platform_device_register(pdev); - if (ret) + if (ret) { acpi_unregister_gsi(gsi); + platform_device_put(pdev); + } return ret; } -- 2.43.0