From nobody Tue Sep 29 06:11:39 2026 Received: from mail-pg1-f176.google.com (mail-pg1-f176.google.com [209.85.215.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 8A00136E48C for ; Tue, 11 Aug 2026 20:01:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786478491; cv=none; b=NfKkiy79p6OKVN2sRtoXcNTEsDXH/LVT1xaA7YjdQbUJbJsBXxaYm6/wGh9xtQEQZhBNJWqp56IZWpQMfTOvbwJqLwIaftBl0RzYgmfFHr3tu4fBdjQpn8PdZXa2VLkMHj4HEHsAHdgyK5rHpDo67+1Q91SMTLU9B0kN+0cnpYs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786478491; c=relaxed/simple; bh=M/Ozed0nksdp37DPAu/RhSqJymREkLvE40C3ZrkbZrw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UcAdJYiKtwZ4vPpbz3GxSsG1F5xznJkPpLPVVpy4i1HuQuWVKKg7m8SiHhGriCjMWl9ZOmjOrON2z8LIvqWHclw5TV23vtmhmS3jVNyzkd4OWnO4R0oSZx4PkTiOy8NDIdv81oy2Y3z7cKWXaxafCeFKaN2Ujtcux1BTRvTK7zk= 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=S7lCBjCe; arc=none smtp.client-ip=209.85.215.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="S7lCBjCe" Received: by mail-pg1-f176.google.com with SMTP id 41be03b00d2f7-cbedd5aece4so552765a12.0 for ; Tue, 11 Aug 2026 13:01:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786478490; x=1787083290; 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:content-type; bh=wMP0hddgxDRJDSmMUhN6Ff8CjFaNmUc5wsXEddg84DA=; b=S7lCBjCesVWhqzZW1QlBnGRkXtEHCVVxO1tstZdmNcc+oYVLlqZOILxg+FOZWvmcBP HB6P5h/ZIDUrmDmCMkWKjal87pSxdbp5+GjUsGEg9vtjZ6bBWUfbR0GijLjiYBrUzDFV klvVVZBMqBHAcjPWNBFOnqOeGFtSQ/Ptc2lXfsBTlWksq/Sa+8B3TTFjZ3dgs1+SNIsu W2+JGPCUT4+K6zhvVGInfNfXjy2Yvc1hT6r2Cchea6EYBmWNR+bJOvj5tOlyTXT8iGfA tbYGu/GAyh/fczgGFwQza3bkvU+zC99Eggj1/0ZGFVNW/RQf29EILtwHzhZGcbC6vNLs 92TQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786478490; x=1787083290; 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:content-type; bh=wMP0hddgxDRJDSmMUhN6Ff8CjFaNmUc5wsXEddg84DA=; b=XInJwRuq5KYPcoyUdsw2L6L48iGrO6Md2oEKKmW0udtBwXn7/FWQblRpo+GZOtnZlB FwRQxkoNEg3MEa0Np0UCOGUkGHG1Rkl8QJOSvytnKuNvZQ3CPypDOwAnCJL92iRLtpQu HNBfXynfui3mAVoPkHrgK+NzjXt543+rSJUyO/SyDW9ogV0+/vVkesHb2Vl14F7Ti6sb V5sTfGEgBqztW7nRt59CABYgLhmtx2ZanYJAGDl8i66aONr1D7HA6Un6s8ysgeaxbXUW CdCC6WzPpHsLi9qdX1y163RLUjr1zXcDTYnRqNwb32v1Viv6le5Ci4JiEZheMtSjNhEo SqUQ== X-Forwarded-Encrypted: i=1; AHgh+Ro6KXbtdaCz47pZBUoshBVxFn2LagigLOsflC41QdM/Qy+j3UsIA+/wBJK2sw3z2D9+3x7SzmVFa9dIJo4=@vger.kernel.org X-Gm-Message-State: AOJu0YwOJ+L9rjqVTS2WPDxIsn238kBdQIcjzKdLp0ONuX7kgM/okUUn KBp5c4EQVqW3wKB4r8qhCT+idxqvDWbTskG76GB8IzBcNxCF/hAy0DUf X-Gm-Gg: AR+sD12JCL56zafczbJl0XvWS2IiHmRuihxCqJFRIUzbdS70ECxTtwr3hIwG5UYgbk1 Og2/xw1bf6+gO5rqf6sOJGMbdcT7Q3dFNeb6GwPxeZsT28928OjwjE4vfChrHf+eSfs3qR2XxLb dYA2dqebQFFmkO36f292HsNFkL30p/hc+G3dtsQd9QxBTUcrvXDgeZtO+5Ugdt5s/N65M/j95Xi IZ1e8pUBG2UyYYsopZrxwa899Ys6hBzKKc4NliG7QAh02cow8nUgAypi9wYjMErvBlHyDQEyf+3 XQ91SA/xDS5vx8FkAX7A+O6UyM7u1kxQMaWiSRABKeIYoH33y6ROhsJz141htPJKP1DGszku8qA ckObaRDf8Ttst1JLGjcppbYai+4QrRXwWNa8XLNmptL8IObpjpNTIsRHFX3/kffYDo6H6hFkmWS wyKDLkkc//0fRfZkUpOGEssCTI5GDErqO01quEcU29Dy+GlAAqXGC8d41JWNpVvr7u5cvRFdyUH NP5kcLkSiV6XXOP69z8mWgGkqrfY4DXb/pJSv5mNHSACimkn5zOmS9mVWJB5/8Gy+xrErBqFV4f jvvDOO43zg== X-Received: by 2002:a05:6a21:3117:b0:3bf:b7e8:68ab with SMTP id adf61e73a8af0-3cc377db1cemr3874600637.2.1786478489770; Tue, 11 Aug 2026 13:01:29 -0700 (PDT) Received: from iku.example.org ([2401:4900:1c07:ceae:5da9:e5f2:ea74:b6c3]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-31cf6791351sm2216447eec.23.2026.08.11.13.01.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Aug 2026 13:01:29 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: Claudiu Beznea , Lorenzo Pieralisi , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , Manivannan Sadhasivam , Rob Herring , Bjorn Helgaas Cc: linux-pci@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar , stable@vger.kernel.org Subject: [PATCH v3 1/3] PCI: rzg3s: Disable refclk on probe failure Date: Tue, 11 Aug 2026 21:00:11 +0100 Message-ID: <20260811200013.185956-2-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260811200013.185956-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20260811200013.185956-1-prabhakar.mahadev-lad.rj@bp.renesas.com> 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" From: Lad Prabhakar rzg3s_pcie_host_init_port() enables the PCIe reference clock using clk_prepare_enable(), but if rzg3s_pcie_probe() subsequently fails, for example because pci_host_probe() returns an error, the probe error path only releases the clock handle with clk_put(). Balance clk_prepare_enable() by calling clk_disable_unprepare() in the probe cleanup path before releasing the clock, ensuring the reference clock is properly disabled on probe failure. Fixes: 7ef502fb35b28 ("PCI: Add Renesas RZ/G3S host controller driver") Cc: stable@vger.kernel.org Signed-off-by: Lad Prabhakar Reviewed-by: Claudiu Beznea --- v2->v3: - No change v1->v2: - Added RB tag --- drivers/pci/controller/pcie-rzg3s-host.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/pci/controller/pcie-rzg3s-host.c b/drivers/pci/control= ler/pcie-rzg3s-host.c index a1a78bdb7af1..01488660ab08 100644 --- a/drivers/pci/controller/pcie-rzg3s-host.c +++ b/drivers/pci/controller/pcie-rzg3s-host.c @@ -1897,6 +1897,7 @@ static int rzg3s_pcie_probe(struct platform_device *p= dev) return 0; =20 host_probe_teardown: + clk_disable_unprepare(host->port.refclk); rzg3s_pcie_teardown_irqdomain(host); host->data->config_deinit(host); rpm_put: --=20 2.43.0 From nobody Tue Sep 29 06:11:39 2026 Received: from mail-pg1-f171.google.com (mail-pg1-f171.google.com [209.85.215.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 74F4D33936B for ; Tue, 11 Aug 2026 20:01:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786478497; cv=none; b=cXUWzyb7VOxWZf9731DPyBxiffohOnSDhq0nOb/D7Q3nDIW6f6ilvscVV58DEbik2V2B+Z5U9IeULTh3boWNJdJDotCkZZq8HRnXeSZxXmvJFwMDcHgkHwJorVSAHzfQd139aZKjl2vRcP7xrrOzXRdC08w/ecV07J0a63xMAJU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786478497; c=relaxed/simple; bh=9WDwPklQZULEU0ftN77u8KResH+rXClRsq15ydImbN8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kGTIeWhU75aQ8KWMw7zjI0Oh/h/M55OV2u+sEOGuA3CU143vXJZ+Cbxnpc1OTqTDony2wcOCu6lPfxDlb3TJBI5mwuR7/GF+n94lAFMt0XRj9y/TKysVZGaKTr76iyguaPA7tiY5Bx3sIF4L2e5OMF1csoW9hCgpuPLhwe59TIg= 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=DU+qYhde; arc=none smtp.client-ip=209.85.215.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="DU+qYhde" Received: by mail-pg1-f171.google.com with SMTP id 41be03b00d2f7-c998fd549a8so141945a12.2 for ; Tue, 11 Aug 2026 13:01:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786478496; x=1787083296; 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:content-type; bh=u0QYx2H3oKVA1pDedVfiJ5Y7LwMtbGVZPi7N/1ddFrc=; b=DU+qYhdeRhI9pfoMi3XgKFBpOhKW3ApP1vHzRB19HpSft3ReIzvt/md4XlY5JI5Vwr ZZKcu1SSlo1QAT2jcsBZtJ1rhu8lajH2fkh/PztZnYf6P4xDGJ1JVO3uRRofSdqLLDyD InNzb5g1uicYhRMjDCjMY1afndc1v3f6H8AWRNv21rVCLb6plNZ2FLSVCnIaM8Kl6ERc EpPOaS4aAVtdvm/BKlzuaBlEZW5uBCPuWHMgxQtlWA/KuFY4ZDx8nHdS8ZUilUhgjKgd KDnxyeRV1AUOGISikhorImPjLFeVXeePNKSokPUei8UIUr17wNoM/qP+u2jel3wrNKee IYfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786478496; x=1787083296; 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:content-type; bh=u0QYx2H3oKVA1pDedVfiJ5Y7LwMtbGVZPi7N/1ddFrc=; b=bzOx0E7L3a6jSuhSOjrsJD+nOq6rx9iu4xf2G15/z/8igAw1D89mK0FX4CwxKow2Zp 07nnKeKM8qz6Rzpmv8ytI6BjkLq6eoYajPUSS75heEO1iVwBkqGTSabd2efMoE+jeS7e n/tHjUIIWATS4MbJl+KHyuERy0OvnuiuX3rh1QiLEg+uBKYCxFnC5zeYS0hXUlacZFdZ j1wHhexAI9Rqip7266lJ03lDSvnnnGlaeTZbv5KWY0Zxvp4qRf+m8dpIrLyyeciKoaOi vpL4qtr+ZXtJeuw80uCRwfn9Fo5knkqFXygNOOQ9Kiwl8ALCGbWLrt+74pPsWnT98GHB KF5A== X-Forwarded-Encrypted: i=1; AHgh+Rogax/LSS1v6YAhiIzWWTFYl2ddHKixkV5pB6TaNB4Km8McZSKGNluMUxaPOFT4wnmT7HdOZxm9hzXZ+zg=@vger.kernel.org X-Gm-Message-State: AOJu0Yywwvypq7HQjKM0qWoSrWjJfE0b/ZBj5UzaQew/M1/JrcaydWqZ 2h8p0m5bdHsLu6CUZn8PfpcvastnORsWwSflEidMrKQe8V30vjmLQ9iM X-Gm-Gg: AR+sD12QaZIsElHChE6U3FAem0+z0+Y01B+r79GdU5SANnklAQAz5nAoJwl+fA2XGFL hVD0nyZo5xY35psvOcDtNvgxxASfb4mUl9NkmThSKghhapmuW9w3Ycnd4mOF8zyudfo6Nipojsi YlWBnzPGJoCAvQbTYw6tBBKl0L+2+GUR6kXvkO7KajY3aukqUGfvQ2rMUH36I+LP2Q3PL/hpAII nWS9d3lL4tQHVyjsHMMYP7FiCIQhbvPVx4wyx3xsB/ptgYuAbdeij04IfuokEn8JAzKXmFilzsH gfJkH+M9llQ1jDS/Fxh9EfXW4XMVXqNEp0+WCQzhdAV9OYf3v1weLOM1XjkghwDY49hGf9XfNKv w/7zkzZnutcWj8eUcvRiyFlVeC1glg/SxDsk7qbNrCp8njzsjPyFX4GqYfCQQgVC6KpCuPPxEQX c2D/FsE7317w9kkuhIuIg7pvzw8zmjDKMefquzmREulzSr0LjJNLWtt2rRyeNtF36OoBVrdF/Rb EBw0bzyNmrFdw9kmY9keJxVJjZtZwK+E+urrUK2XuiV1lbaDFDEg//0oCdAAYESdt+jQXezfBtW VlJdL8/Vhg== X-Received: by 2002:a05:6a20:2d13:b0:3c4:1916:9d46 with SMTP id adf61e73a8af0-3cc2bac42a9mr7716637637.27.1786478495582; Tue, 11 Aug 2026 13:01:35 -0700 (PDT) Received: from iku.example.org ([2401:4900:1c07:ceae:5da9:e5f2:ea74:b6c3]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-31cf6791351sm2216447eec.23.2026.08.11.13.01.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Aug 2026 13:01:35 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: Claudiu Beznea , Lorenzo Pieralisi , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , Manivannan Sadhasivam , Rob Herring , Bjorn Helgaas Cc: linux-pci@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar , stable@vger.kernel.org Subject: [PATCH v3 2/3] PCI: rzg3s: Propagate platform_get_irq_byname() errors Date: Tue, 11 Aug 2026 21:00:12 +0100 Message-ID: <20260811200013.185956-3-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260811200013.185956-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20260811200013.185956-1-prabhakar.mahadev-lad.rj@bp.renesas.com> 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" From: Lad Prabhakar platform_get_irq_byname() may return specific error codes such as -EPROBE_DEFER, but rzg3s_pcie_init_irqdomain() replaces all failures with -EINVAL. This breaks probe deferral by preventing the driver core from retrying probe once the interrupt provider becomes available. Propagate the original error code instead. Fixes: 7ef502fb35b28 ("PCI: Add Renesas RZ/G3S host controller driver") Cc: stable@vger.kernel.org Signed-off-by: Lad Prabhakar Reviewed-by: Claudiu Beznea --- v2->v3: - No change v1->v2: - Added RB tag --- drivers/pci/controller/pcie-rzg3s-host.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pci/controller/pcie-rzg3s-host.c b/drivers/pci/control= ler/pcie-rzg3s-host.c index 01488660ab08..f51b5d7c1998 100644 --- a/drivers/pci/controller/pcie-rzg3s-host.c +++ b/drivers/pci/controller/pcie-rzg3s-host.c @@ -1019,7 +1019,7 @@ static int rzg3s_pcie_init_irqdomain(struct rzg3s_pci= e_host *host) =20 irq =3D platform_get_irq_byname(pdev, irq_name); if (irq < 0) - return dev_err_probe(dev, -EINVAL, + return dev_err_probe(dev, irq, "Failed to parse and map INT%c IRQ\n", 'A' + i); =20 --=20 2.43.0 From nobody Tue Sep 29 06:11:39 2026 Received: from mail-pj1-f41.google.com (mail-pj1-f41.google.com [209.85.216.41]) (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 8B0EC37E5DE for ; Tue, 11 Aug 2026 20:01:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786478503; cv=none; b=feNM4SDooj0kLUXDn3XTYlrg0Pn0P8tW+X84m8IRINXD7sGHsMm35nMdP3knIhhHrouyCI0gRsbC3I56DRALl5Hm6Is0CRAhxb2KfU/Q+yCP5jeTqqcjRzKfPvGa5bu2pHqVzQxXygVFBgp29BsJXynuZWRvrG0lyobH3opY3og= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786478503; c=relaxed/simple; bh=hrmzmVrvGWTP1LsYT+VaNgqVj1es0y60dQVMTGpF/os=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qhDc1uW0f7pIOZ+NHAuB4ZpUtgQoUfS72gs/XeetaFKyJSL7mKeJF/HQcW47uFOZOsT4qUO2b5/1EPzJ4sf2fQEoW0UM6/8zR7b0IJmw4+Rpf0E8gFIEse5Gst2+LQKuS/laGu8Tnm3T2kopwB1Fm76nlTyKmMYYlPgdSZnSybA= 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=btYJmYUX; arc=none smtp.client-ip=209.85.216.41 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="btYJmYUX" Received: by mail-pj1-f41.google.com with SMTP id 98e67ed59e1d1-38dfe7eb825so302891a91.0 for ; Tue, 11 Aug 2026 13:01:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786478502; x=1787083302; 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:content-type; bh=Lduyi+JxRXbKGNM1YQ1o6cUDvymR9U7AMupOhybXW/k=; b=btYJmYUXlpREXv9W0k6m90altQpe8tT5hxMwqseejOyH/T1BTDK5sLWh/2VjerfhSx Ca9LPABZeG3nXa46/HA6DYYP+R2nKv3LQl+drsIokbwyQckIoABGoY9BteBaEDFWu6nI DOiJDTfimXqaSJnHlqKl1wMD92PbvEH0P4itAAm6jJys8lIDajDl5LcjozvC4fhzxte9 sXg2YIsRn4Hb/8DlEk8mzk/3MzpUvfGJg6lLWKvCgGrynzHPhIvWhfdDfX+7ey319Dgx pehP4/R6QC0EmTQN7lgZQPWj7fBmv+BQPY41IXfIdBxrb66sqLQPqjf3pssd1kjqeQIY LhFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786478502; x=1787083302; 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:content-type; bh=Lduyi+JxRXbKGNM1YQ1o6cUDvymR9U7AMupOhybXW/k=; b=MxgbDU2RU4mglCNjXQVd7GNCQSnKbm+28QNZEsuA+JYW84HZ3LZhBrpDjjpzLKoWYv TfwPuFENs8dH6ERiZS9Je4hsSGI13C0NqCbnMRRLygoR+EOz6U0f7maDP8jADQNkynWe 29J2sKRIr0SVRoouwrCClB3HEcQR48vY+vl39g7Hm34fvlcw2l3v6FlqoB7g0831QzrA 9mWpg1Emc+OetIrSPtNVUsDSU7q03PyuhU0l7LYQ1N8hQfJm/DZV3LdDTZ4SsmYs/W+M bQURjVNqNeBhzmwcyjv9oZg5zWYxqhiLJ6MSdDopb8NrMADaHs7vz/7ailhAJSRZpGJT ME6A== X-Forwarded-Encrypted: i=1; AHgh+Rr9B3jOOnyjuwQBhKeAHSefFi3iixMz9DBvmPTPPNhUqdnWxw7G+wuaLDKB3TjirfrnH9VHeN7fpm5nQE4=@vger.kernel.org X-Gm-Message-State: AOJu0Yzbe2SqwRFD5nQ643NRVYNF2uttljz6clgBocQ63mEn61ZaSDT+ pWUTk9Vwl759IW9dU9v2+T38BckcD2BCq+jhPyCCgOAH1iPE4U14otSY X-Gm-Gg: AR+sD10xI6i+eFNpASjwMwCGHAtMHwiPABrvUqxM9ZqApW8lwzTjBbr3mIVm0dC9TK3 7YVM7tkBVQ5pdhz1+IfRePFE0eqccKyeKgRkG0TGpE9FFNyQM1apHXNgbXVyZoYBFzCFn48sRHm YvuQPW8DOMJM294KR6PCJbGE694J3saouUgnmNMWA/Go1SSRxyz7rsUN083F3OYdssziLkP4hGD 6DfUqOoVyZzyZI9fHdYFfhiDML3d3nob1PMQMk3hODomM2LCGUnFCISHytt7WxH6NQoW8YmMTFU zGz8stKg5CVfV2xS5J9PANg7P6c7TQdyBvMB9YfiNK/sTwAKqF3jap6p/8sf1nwNRCl75MQ7CtJ YvjYiQAEH3FnqJoW/2ju5Oaexe8/YyxZWDd0rfQwa94Kjwoc7HxTCPl7jAr3n3U5xJSbAjCb1Uu oP1Qak2SBmmN+yBM1bh7j/TMUvCVGRNl2GXGKzZaaTDtnaqMQU0nX+Sj5GTIf5iwL8VwRwxFfgL tWqnTkntriiL3SXE6ZhPkgJiMRnhtmcVDxkcD+zn7nWDFdy0M6YdB1ttkvABYCDmUO2Rij6kfJ3 WCPkGt0qeQ== X-Received: by 2002:a17:90b:4c89:b0:38e:5b59:c2ff with SMTP id 98e67ed59e1d1-392ec396095mr5951201a91.3.1786478501719; Tue, 11 Aug 2026 13:01:41 -0700 (PDT) Received: from iku.example.org ([2401:4900:1c07:ceae:5da9:e5f2:ea74:b6c3]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-31cf6791351sm2216447eec.23.2026.08.11.13.01.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Aug 2026 13:01:40 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: Claudiu Beznea , Lorenzo Pieralisi , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , Manivannan Sadhasivam , Rob Herring , Bjorn Helgaas Cc: linux-pci@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar , stable@vger.kernel.org Subject: [PATCH v3 3/3] PCI: rzg3s: Fix IRQ domain initialization error handling Date: Tue, 11 Aug 2026 21:00:13 +0100 Message-ID: <20260811200013.185956-4-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260811200013.185956-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20260811200013.185956-1-prabhakar.mahadev-lad.rj@bp.renesas.com> 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" From: Lad Prabhakar rzg3s_pcie_init_irqdomain() installs chained handlers for the INTx parent interrupts before creating the INTx irqdomain and initializing MSI support. If any subsequent step fails, such as obtaining an INTx IRQ, creating the irqdomain, or initializing MSI, the error path returns without removing any chained handlers that were already installed. This leaves stale handler and data pointers attached to the parent interrupts. Add a helper to tear down the INTx IRQ setup, including removing the IRQ domain and clearing the chained handlers. Use it to unwind partially completed initialization and from the normal IRQ domain teardown path. Fixes: 7ef502fb35b28 ("PCI: Add Renesas RZ/G3S host controller driver") Cc: stable@vger.kernel.org Signed-off-by: Lad Prabhakar Reviewed-by: Claudiu Beznea --- v2->v3: - Added rzg3s_pcie_teardown_intx() helper to remove the irqdomain and clear chained handlers. - Updated commit message. v1->v2: - Restricted the code to max 80 columns. - Moved calling irq_domain_remove() under err_cleanup_intx label. --- drivers/pci/controller/pcie-rzg3s-host.c | 50 +++++++++++++++++------- 1 file changed, 36 insertions(+), 14 deletions(-) diff --git a/drivers/pci/controller/pcie-rzg3s-host.c b/drivers/pci/control= ler/pcie-rzg3s-host.c index f51b5d7c1998..3f7393c49a08 100644 --- a/drivers/pci/controller/pcie-rzg3s-host.c +++ b/drivers/pci/controller/pcie-rzg3s-host.c @@ -1006,22 +1006,38 @@ static const struct irq_domain_ops rzg3s_pcie_intx_= domain_ops =3D { .xlate =3D irq_domain_xlate_onetwocell, }; =20 +static void rzg3s_pcie_teardown_intx(struct rzg3s_pcie_host *host, + int count) +{ + while (--count >=3D 0) { + irq_set_chained_handler_and_data(host->intx_irqs[count], NULL, + NULL); + } + + if (host->intx_domain) + irq_domain_remove(host->intx_domain); +} + static int rzg3s_pcie_init_irqdomain(struct rzg3s_pcie_host *host) { struct device *dev =3D host->dev; struct platform_device *pdev =3D to_platform_device(dev); + int i, ret; =20 - for (int i =3D 0; i < PCI_NUM_INTX; i++) { + for (i =3D 0; i < PCI_NUM_INTX; i++) { char irq_name[5] =3D {0}; int irq; =20 scnprintf(irq_name, ARRAY_SIZE(irq_name), "int%c", 'a' + i); =20 irq =3D platform_get_irq_byname(pdev, irq_name); - if (irq < 0) - return dev_err_probe(dev, irq, - "Failed to parse and map INT%c IRQ\n", - 'A' + i); + if (irq < 0) { + ret =3D irq; + dev_err_probe(dev, ret, + "Failed to parse and map INT%c IRQ\n", + 'A' + i); + goto teardown_intx; + } =20 host->intx_irqs[i] =3D irq; irq_set_chained_handler_and_data(irq, @@ -1033,21 +1049,27 @@ static int rzg3s_pcie_init_irqdomain(struct rzg3s_p= cie_host *host) PCI_NUM_INTX, &rzg3s_pcie_intx_domain_ops, host); - if (!host->intx_domain) - return dev_err_probe(dev, -EINVAL, - "Failed to add irq domain for INTx IRQs\n"); + if (!host->intx_domain) { + ret =3D -EINVAL; + dev_err_probe(dev, ret, + "Failed to add irq domain for INTx IRQs\n"); + goto teardown_intx; + } irq_domain_update_bus_token(host->intx_domain, DOMAIN_BUS_WIRED); =20 if (IS_ENABLED(CONFIG_PCI_MSI)) { - int ret =3D rzg3s_pcie_init_msi(host); + ret =3D rzg3s_pcie_init_msi(host); =20 - if (ret) { - irq_domain_remove(host->intx_domain); - return ret; - } + if (ret) + goto teardown_intx; } =20 return 0; + +teardown_intx: + rzg3s_pcie_teardown_intx(host, i); + + return ret; } =20 static void rzg3s_pcie_teardown_irqdomain(struct rzg3s_pcie_host *host) @@ -1055,7 +1077,7 @@ static void rzg3s_pcie_teardown_irqdomain(struct rzg3= s_pcie_host *host) if (IS_ENABLED(CONFIG_PCI_MSI)) rzg3s_pcie_teardown_msi(host); =20 - irq_domain_remove(host->intx_domain); + rzg3s_pcie_teardown_intx(host, PCI_NUM_INTX); } =20 static int rzg3s_pcie_set_max_link_speed(struct rzg3s_pcie_host *host) --=20 2.43.0