From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) (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 8D77830F7E0 for ; Wed, 25 Feb 2026 07:22:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.179 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772004177; cv=none; b=bfDdHeP77RuocoYxfs3bTMVNMQ6GuiTif/AcWJLL95NdVtry2R7vEg1IX43OByr+Rns6fT2BJ9Fur8bYqwUp0Ki7v/+K5TRkU+SqhQuYcFlSnrnHbfz3+GRYpci4rIDmbdVfRJ6f0EjoGaKfeG9uzUCWC6kaM664i2cJDPJtzIA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772004177; c=relaxed/simple; bh=Sy39ajZQihbl7RlFirt5qjuCLJ/gL92X1DsDY6o0ANQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PDt698Ifhv0hsABEbMwIXHt/JD36FuUp55PDaFJ2cnMk0aUmZhsMzWGXCnbITX7T+rvPIDM2ERWjxXDgQD0mxrD7CvdcEdvwr7HqgoM7luz2qUKzpdlHr7hehGeXGAqzyKMQpWBAuQ7mwqfQ4lrso5zvOcqW7X8oZkbOvlXyL9A= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=heW0eD6l; arc=none smtp.client-ip=209.85.214.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="heW0eD6l" Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-2ab46931cf1so3798325ad.0 for ; Tue, 24 Feb 2026 23:22:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1772004175; x=1772608975; 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=B5DXCfdvJ1l3iaiyIVD67Vr2Fhjn3yvdCNDjCKNCXps=; b=heW0eD6lik+bNgzr+hAI+XS3GxAsiyaDrAvRZLeugXILPN61H95juZx6Euln6jMpAg MnS0pqKGP1+ISCY5mvFaBqQ2rV0tMK3trDTMmt2rYWCrL/dC42YKhVQAhOrIqgZ+BbuC kfngZkp22mX4jlALSs0KR+rJl3ikyQ8vnWvxY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772004175; x=1772608975; 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=B5DXCfdvJ1l3iaiyIVD67Vr2Fhjn3yvdCNDjCKNCXps=; b=oW0krIf4WyJ3Jr3bcn8I+O0S0bkBQqdk3fjfmmuL/+vfMFgrHazlL8MoidF4/mtD2d P7VRQkm9aQ9jit1VSlmnON2mPwYCfu+GepDDkRSSW7xjRxYdwmf1IEIz2lYGBqV/Y63X +6avEm4rUurtpuJxN6/Yp67LJf4o5ysVOi9XjTIYgtSVoL4iiQv2SvR8YhQGMBksIxFe h0VjaE56IJ4AAU9GaJ6tOtbhedQh6BWjahqPXr62Vp7KLGAW+ZMpGgpwIZmRwNUmD68S 4o/JKb6nb0RGUjQ083kTIBID+Ko5sqxGYbXvtcBWtMz//Bed/sTs2pDrigxWrcdd+P+t 1G0Q== X-Forwarded-Encrypted: i=1; AJvYcCWoLJVTfdQFGvVUCO4ivDM4+0wS03Ly4aFN9RuXJiFSPolUP0Q5Mxk9BO3yA6gHHZnfAxoDFMAvCzznCvc=@vger.kernel.org X-Gm-Message-State: AOJu0YwzO47LJBOlGp8B46iuUuldEx5OQRf31pHq05ZWFIYFWjyBt9FN HZkS6khBs7jwEBoe3mkxalvMzuiesnjnvU7ezuTm4SVrxX9YTIjwm+ZTpnnHEgyFAg== X-Gm-Gg: ATEYQzzsQMQ4Pb1SBxh32ELMBjdqGHkS3gqxIG48us+Q6BwC6o3o3JDFaNpVptJYmz1 j9R5a9UuDxRGaybHYRqAqBR7IVNp2wjPfNZ/kDDPz8SM8IwtNjltTqM2FzjSAXYCgeRriY5LqcP f844I2jaowu8e55BwYRS0QxRcWXQEdqA45cVRmiMCOzpHkf9S++KgVigsK2FxuhV0Q1AgHcJg06 ygzUd/xAYJBZP5J8C+QSrdCMq+5bHfOVTdO6KDXywDF+1gAEyb50h2PWz0n/qKombL7a5Btbufd VNlsk7Lztb13q7PXocfGaxurLhHfn7qAMEsmhZ/TqaJLu6EE2wNN5f3GWN2euDODFSy0k/MTiaf enmBHblE4Kx0473Q4vKz/13RRls91TAEyWHmniowKbFx+lA+aCwBZ+9OQ8tB7sam4ICYMNy/lv9 NQ/BhXKVfRTLmTddbITDg5n+JNibOc/t2xK9EOQzZm8emvQggJ/wdZ4d2xQXO/8+F9ep1OIm7cl j655eCHhC/VLaXw X-Received: by 2002:a17:902:fc45:b0:2a9:5ac3:a925 with SMTP id d9443c01a7336-2adbdc3eae8mr23994555ad.3.1772004174956; Tue, 24 Feb 2026 23:22:54 -0800 (PST) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:9d6:2e6a:941b:690]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ad7503fdc9sm130814435ad.80.2026.02.24.23.22.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 24 Feb 2026 23:22:54 -0800 (PST) From: Chen-Yu Tsai To: Matthias Brugger , AngeloGioacchino Del Regno , Ryder Lee , Jianjun Wang , Lorenzo Pieralisi , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , Manivannan Sadhasivam , Rob Herring , Bjorn Helgaas Cc: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Chen-Yu Tsai , Bartosz Golaszewski , linux-pci@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/7] PCI: mediatek-gen3: Add error path for probe and resume driver callbacks Date: Wed, 25 Feb 2026 15:22:19 +0800 Message-ID: <20260225072225.3345307-3-wenst@chromium.org> X-Mailer: git-send-email 2.53.0.414.gf7e9f6c205-goog In-Reply-To: <20260225072225.3345307-1-wenst@chromium.org> References: <20260225072225.3345307-1-wenst@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The probe and resume callbacks currently do teardown in the conditional block directly. This is going to get ugly when the pwrctrl calls are added. Move the teardown to proper error cleanup paths. Signed-off-by: Chen-Yu Tsai --- drivers/pci/controller/pcie-mediatek-gen3.c | 22 ++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/drivers/pci/controller/pcie-mediatek-gen3.c b/drivers/pci/controller/pcie-mediatek-gen3.c index 1939cac995b5..f2bf4afbdc2f 100644 --- a/drivers/pci/controller/pcie-mediatek-gen3.c +++ b/drivers/pci/controller/pcie-mediatek-gen3.c @@ -1189,13 +1189,15 @@ static int mtk_pcie_probe(struct platform_device *pdev) host->sysdata = pcie; err = pci_host_probe(host); - if (err) { - mtk_pcie_irq_teardown(pcie); - mtk_pcie_power_down(pcie); - return err; - } + if (err) + goto err_teardown_irq_and_power_down; return 0; + +err_teardown_irq_and_power_down: + mtk_pcie_irq_teardown(pcie); + mtk_pcie_power_down(pcie); + return err; } static void mtk_pcie_remove(struct platform_device *pdev) @@ -1301,14 +1303,16 @@ static int mtk_pcie_resume_noirq(struct device *dev) return err; err = mtk_pcie_startup_port(pcie); - if (err) { - mtk_pcie_power_down(pcie); - return err; - } + if (err) + goto err_power_down; mtk_pcie_irq_restore(pcie); return 0; + +err_power_down: + mtk_pcie_power_down(pcie); + return err; } static const struct dev_pm_ops mtk_pcie_pm_ops = { -- 2.53.0.414.gf7e9f6c205-goog