From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qt1-f175.google.com (mail-qt1-f175.google.com [209.85.160.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 212DE305691 for ; Sun, 2 Aug 2026 22:11:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.175 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785708714; cv=none; b=rU7APhQLhb7IoYPlRwTXxnJQaDzDIrmqrI4PzRAOWZVu9rE1qKLoMb/dHj3Xndgbqo/6el9KLNDH5WTKjG5yindUUNc1p4C89dkaxxJw/grPiYsOLriCv8zQnrq5P4Cbmp9+MOSzRHHTzsmqLosnIZ5vfEiVfvVzOhOWf0bNLlg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785708714; c=relaxed/simple; bh=bOdoGyy9FIE4++qSK2iP4efegXnNinlInPOn6hUTm+4=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=laj3R9hs97gHcrczVgWebG8yH6SDi/KEDlPD8l/gM9mKvdaLQ6zydaqYc5ebNEYHWU6yo/opNrGB6KADUJrC3/I03GShrclOl7Ub67nX4IYeEbMKOchKysZEC6iHkOb+yvBs+JF5eS1pWoe0wlt1S5L3AMhpjJsrsVrWol3DSqo= 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=EdEa1Knf; arc=none smtp.client-ip=209.85.160.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="EdEa1Knf" Received: by mail-qt1-f175.google.com with SMTP id d75a77b69052e-51c8e2e39easo24488711cf.0 for ; Sun, 02 Aug 2026 15:11:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785708712; x=1786313512; 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:content-type; bh=EhU0lksOjQ0TR3P146OV1hVStSVy2GPBLJL11UWPwxI=; b=EdEa1Knf5Xuv049Q6pRuv1JldsL5PkUxy2MZlfjxOiyFFb4yBmCqehNx88WLVCwEJB s88azh4fA7H9So+GS5itubZQOajwgLgPaGqPqe2V8zSlwcWSaxhKmgTgO14+t/JkaiB4 WgA/7lQSigFxnIni+/7gScflPm0BiCfXpozfllEa3BirsGrdzknkdEg7XddbL8O4/Cxl 7wXLnrSlLe7MzfllAZZfYZxHuHkbUAYXPOFtuOTApDGpOW1zjEkFNi+N5VK/9w2yapK9 0hjLF7XPALj8kUJNwsehcUmQ1Q1jHjL8VdSD6fdUKg9zhQRaKLXctlIKZVGRfHwRLmto 3wuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785708712; x=1786313512; 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:content-type; bh=EhU0lksOjQ0TR3P146OV1hVStSVy2GPBLJL11UWPwxI=; b=BNcTFWJ5dw0IgBlJ6Y+gyib02DKi/GGpb0e+zJi0Jkf7PdP6YuISh4QDkQdiAHxBwP SYpq4sbfhJjw2tgJ2/XlPcgf9qwJs6aw56tm/AkMSWamaEYIwyPJgdDIjwwdG7l2Sc9r 5xzYOC22hWWncvVoCyhzOwRumjrPDYFum5at11FHrgGG/o9RsGNXK9Squ9i+Q0rPlUJI fUmjneBSR+MuT7yb+iSVLFTI2UP4PCHms+AlXBucViclGi6AEHGiu+nPqWEtI23I61lr tNGpCui0jX7t7pE7auRECK5SNgHUu95l2sKgoWdV81ktIX3TeaMl3OI7rIrYQR+QD2Uy MfUg== X-Forwarded-Encrypted: i=1; AHgh+RrQEmHU3WHuB4cAP1KCSwuCQ6E1oEHDl+iwrPBNweBI7wwH5ZQrv652cMgPomymNc2PUGf8QQnLabkYQaQ=@vger.kernel.org X-Gm-Message-State: AOJu0YxgtgH5NdlbZ49OmIyHIAPitc43Sdojg0AeJFtD2lcp9lvn0sB1 JtM6uS/BisgS24SBQZknGv7Z3ln1DYBxV+3vtuCGoJGJuikQlrvG9Sfm X-Gm-Gg: AR+sD12ygGTfUP83FQHY1bO1szX0A3Ytmgx+otCDGKibYTt5aqNXfZ3sBJBI6ZeCikU usK+JfLUD4WlIql/FiOVpc9HkFHjJgzW9mzuJNMmCdwjiSTItJuX6LASV/KtGbNAPcUW2qXLc0o e60i6vZs57YWF1+PwspD8sAe2rSKqY6+BAcgT50ULHnY565CLR5B7welPlA91RlcFBCvdpbf6Ne QiG9iSRn7JosmgC0PJBdBYLk1ct7XE/2MX8ypuZWZLSp9ygGIMrOYRALwgXmtqpUaqS8TgEPBMm NJcMERkb54PJ8ZRzxaonQeOtxc8XxKPma8s+BzPkpWmMsGwcUWIzxkyFS7OzuZi7VsWAGdR5ro1 dLGg9w6Z4Hnj7cc6EvsR8zM3kKgtOxuJZioOsJiRjQkcpt8yuVW8HZSTXKx8K3pyLQP+hLlFnVp WVdY241Fl1VUCaMPblZvawpThClFrldoHMCwnL4wZNeTeY2qj007hD4SAY4rXdpcgMFfQ/+Bt7f U4wdCVvAlZQUMQzQ3OX2rvkXq2l6hHaMOYJh8wGs+ocmY8PnnoIakb4oQrRgYM= X-Received: by 2002:a05:622a:1f95:b0:528:3142:d466 with SMTP id d75a77b69052e-52b567cdee3mr154874811cf.41.1785708711652; Sun, 02 Aug 2026 15:11:51 -0700 (PDT) Received: from i4-gl-tmk5904.ad.psu.edu ([130.203.156.186]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-52b4e7edb3fsm49573231cf.4.2026.08.02.15.11.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 02 Aug 2026 15:11:50 -0700 (PDT) From: Yuho Choi To: toan@os.amperecomputing.com, lpieralisi@kernel.org, kwilczynski@kernel.org, mani@kernel.org, bhelgaas@google.com Cc: robh@kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Yuho Choi Subject: [PATCH v1] PCI: xgene: Use managed clock for PCIe controller Date: Sun, 2 Aug 2026 18:11:46 -0400 Message-ID: <20260802221146.573233-1-dbgh9129@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 xgene_pcie_init_port() obtains and enables the controller clock manually. When xgene_pcie_setup() or pci_host_probe() fails, probe returns without disabling, unpreparing, or releasing the clock. A failed enable also leaves the clk_get() reference unreleased. Use devm_clk_get_enabled() so the clock is unwound automatically on probe failure and device removal. Fixes: 5f6b6ccdbe1c ("PCI: xgene: Add APM X-Gene PCIe driver") Signed-off-by: Yuho Choi --- drivers/pci/controller/pci-xgene.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/drivers/pci/controller/pci-xgene.c b/drivers/pci/controller/pci-xgene.c index b95afa35201d..4fe3581b9372 100644 --- a/drivers/pci/controller/pci-xgene.c +++ b/drivers/pci/controller/pci-xgene.c @@ -321,18 +321,11 @@ static void xgene_pcie_linkup(struct xgene_pcie *port, static int xgene_pcie_init_port(struct xgene_pcie *port) { struct device *dev = port->dev; - int rc; - port->clk = clk_get(dev, NULL); + port->clk = devm_clk_get_enabled(dev, NULL); if (IS_ERR(port->clk)) { dev_err(dev, "clock not available\n"); - return -ENODEV; - } - - rc = clk_prepare_enable(port->clk); - if (rc) { - dev_err(dev, "clock enable failed\n"); - return rc; + return PTR_ERR(port->clk); } return 0; -- 2.43.0