From nobody Fri Dec 19 19:04:59 2025 Received: from m16.mail.163.com (m16.mail.163.com [117.135.210.4]) by smtp.subspace.kernel.org (Postfix) with ESMTP id BF2D2222575; Fri, 16 May 2025 16:56:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=117.135.210.4 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747414573; cv=none; b=oqTeNw4vRv8120INf459vGW2N1KOM1VdyBeQlV2klm/5cd1JcKWGogBzLC3ZLnDM6tt1Kn6s4Hd+GzCuF+O2joUWonNggBjOIYNsKs8lpL8lAw/TrIg2h5geo1XasSU9fXnIawZBe+M+ybteTmfHKC+rOgXvO8DR73k7tf6/rlo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747414573; c=relaxed/simple; bh=O3ayu8ZONqiJqL6w00/UKDCzUfhRK5ZW38N2QgYe358=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=SZrVhuPi66pAWk1Gy+djPsQmrxKUra+2JteNWxGetl11su8ZWUwD48iOqMJvq0AnIoYKEqxr7vxIBOZilTjpz9oQkx/Cp+rwRdhnAYeC0YMFA7iE4VfhrRPN5Cju+FQFHmrpAudJfaORqwDZJMG13M/UQ7S74KoYwSsTUu9ox6s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com; spf=pass smtp.mailfrom=163.com; dkim=pass (1024-bit key) header.d=163.com header.i=@163.com header.b=HwewPV4V; arc=none smtp.client-ip=117.135.210.4 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=163.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=163.com header.i=@163.com header.b="HwewPV4V" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:To:Subject:Date:Message-Id:MIME-Version; bh=8Q nkpC7DXTTaoBj8cG/gGZoH/93W5gjIXcCK742TD6s=; b=HwewPV4VfITRmslAMM 3rjbozB+mhgs+Jcyz+QrF3aXobswi55iDa2sQX9YFmqBPfXa5gXrBgImjwC28McD Q62RCrs9Le2YFwa3Ta8AzBkum8/jVL7Z74ZAzJcSoV95SBMp+pbinzh5xzbaEhNv Xl5ork5AIz7XUMaNMSQ2v/vhQ= Received: from localhost.localdomain (unknown []) by gzga-smtp-mtada-g0-3 (Coremail) with SMTP id _____wB3lOX6bSdoVElgBw--.64634S3; Sat, 17 May 2025 00:55:23 +0800 (CST) From: Hans Zhang <18255117159@163.com> To: bhelgaas@google.com, tglx@linutronix.de, kw@linux.com, manivannan.sadhasivam@linaro.org, mahesh@linux.ibm.com Cc: oohall@gmail.com, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, Hans Zhang <18255117159@163.com> Subject: [PATCH 1/4] pci: implement "pci=aer_panic" Date: Sat, 17 May 2025 00:55:15 +0800 Message-Id: <20250516165518.125495-2-18255117159@163.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250516165518.125495-1-18255117159@163.com> References: <20250516165518.125495-1-18255117159@163.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 X-CM-TRANSID: _____wB3lOX6bSdoVElgBw--.64634S3 X-Coremail-Antispam: 1Uf129KBjvJXoW7tw18uw48XFW7Aw18XF1kXwb_yoW8Wr48pr 4DK39Iga93Jw1Yk3WDAFWIga4jva93C34rG3ykJw1Fq3s0kFyjqw4aqr43uFWkW3409F45 AFZIqa4jkw1xAFJanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x0pixuc_UUUUU= X-CM-SenderInfo: rpryjkyvrrlimvzbiqqrwthudrp/xtbBDwpPo2gnaDaNOAAAsN Content-Type: text/plain; charset="utf-8" Add a new "aer_panic" parameter to force kernel panic on unrecoverable PCIe Advanced Error Reporting (AER) errors. This is designed for systems where unresolved PCIe bus hangs require immediate reboot to maintain service availability. The option can be enabled via "pci=3Daer_panic" on the kernel command line. It prepares for safer error handling in mission-critical environments by bypassing indefinite hangs and triggering controlled panic. Signed-off-by: Hans Zhang <18255117159@163.com> --- Documentation/admin-guide/kernel-parameters.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentatio= n/admin-guide/kernel-parameters.txt index 8f75ec177399..a4a221bb1636 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt @@ -4679,6 +4679,13 @@ noaer [PCIE] If the PCIEAER kernel config parameter is enabled, this kernel boot option can be used to disable the use of PCIE advanced error reporting. + aer_panic [PCIE] Force kernel panic on unrecoverable + PCIe Advanced Error Reporting (AER) errors when + device recovery fails. This is recommended for + systems where bus hangs from unresolved errors + require immediate reboot. Use with caution as + this bypasses normal error recovery procedures. + Requires CONFIG_PCIEAER. nodomains [PCI] Disable support for multiple PCI root domains (aka PCI segments, in ACPI-speak). nommconf [X86] Disable use of MMCONFIG for PCI --=20 2.25.1 From nobody Fri Dec 19 19:04:59 2025 Received: from m16.mail.163.com (m16.mail.163.com [220.197.31.5]) by smtp.subspace.kernel.org (Postfix) with ESMTP id E3EE3222574; Fri, 16 May 2025 16:56:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=220.197.31.5 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747414575; cv=none; b=U/w0eHRJZGAlsHiQ7fZvwCiYNfnEStp94H80zYYn+2JgsVOLxDu8l09dnEbjjjeB/NgyNvBxSpQ7MfDMjKTbU62WFKG2ucaU5Vr+pPiZfqEHW4JyBzJjjltAKVhpA5d69cgrU+VyFkTk2HvcD7ejKXTiuWc3o6zeiE0tLimL4cM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747414575; c=relaxed/simple; bh=TIDsyO8zNvHhbmAf26QKPKrH/NqAQswaf+M/Ttjj8Sg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=UCGPTKV9vU0psWeKY2trJdonk+2LRv+qd4YbN7Zy00zhieziwaNKnXHHUxZOteA4jk/cbtWl2FpmmPOKsK0tyOYv7q/oTV8ZbH3oiBZJu1H/RZww/592bXkyF4Cj3lO+60gVLb5a11RnFXhLjX2tZ+U/8WKQEzQHg354HRi5lpU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com; spf=pass smtp.mailfrom=163.com; dkim=pass (1024-bit key) header.d=163.com header.i=@163.com header.b=W4GHeuHb; arc=none smtp.client-ip=220.197.31.5 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=163.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=163.com header.i=@163.com header.b="W4GHeuHb" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:To:Subject:Date:Message-Id:MIME-Version; bh=gr A5e9IizUHs6xNUrHdJHCEjg25RlCLjAgPs5bVE1s8=; b=W4GHeuHb8bTBki/Nz8 Za443f8O0mNQTaO3Firhsddwn9orQGcVp5KhIHrcXZWCw758smz80EjA3ZTx6Kws lFyU3z+r4x+jRgjH+kC7ZPzNx+Ncg+ynjO+WQFDtdckb73ad/1JJDHrneudoFgtq 2itaqh69516l8ALGVDw9oWDKk= Received: from localhost.localdomain (unknown []) by gzga-smtp-mtada-g0-3 (Coremail) with SMTP id _____wB3lOX6bSdoVElgBw--.64634S4; Sat, 17 May 2025 00:55:24 +0800 (CST) From: Hans Zhang <18255117159@163.com> To: bhelgaas@google.com, tglx@linutronix.de, kw@linux.com, manivannan.sadhasivam@linaro.org, mahesh@linux.ibm.com Cc: oohall@gmail.com, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, Hans Zhang Subject: [PATCH 2/4] PCI/AER: Introduce aer_panic kernel command-line option Date: Sat, 17 May 2025 00:55:16 +0800 Message-Id: <20250516165518.125495-3-18255117159@163.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250516165518.125495-1-18255117159@163.com> References: <20250516165518.125495-1-18255117159@163.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 X-CM-TRANSID: _____wB3lOX6bSdoVElgBw--.64634S4 X-Coremail-Antispam: 1Uf129KBjvJXoW7tr18XFyrtr4fZF1DAFWDurg_yoW5Jr17pF W5Aa48Ar4rGF1rXa1kZ3W8ua4rXwnIq34fCayfG393uF13Aa4fJwn3tFy7ZF1xJrWkur1a yF4Yyr17ur45JaUanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x07jn3ktUUUUU= X-CM-SenderInfo: rpryjkyvrrlimvzbiqqrwthudrp/1tbiWwFPo2gnaWRvgQAAsa Content-Type: text/plain; charset="utf-8" From: Hans Zhang Add a new "aer_panic" kernel parameter to force panic on unrecoverable PCIe errors. This prepares for handling fatal AER errors in systems where bus hangs require immediate reboot. Signed-off-by: Hans Zhang --- drivers/pci/pci.c | 2 ++ drivers/pci/pci.h | 2 ++ drivers/pci/pcie/aer.c | 6 ++++++ 3 files changed, 10 insertions(+) diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index e77d5b53c0ce..663454135224 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -6821,6 +6821,8 @@ static int __init pci_setup(char *str) pcie_ats_disabled =3D true; } else if (!strcmp(str, "noaer")) { pci_no_aer(); + } else if (!strcmp(str, "aer_panic")) { + pci_aer_panic(); } else if (!strcmp(str, "earlydump")) { pci_early_dump =3D true; } else if (!strncmp(str, "realloc=3D", 8)) { diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h index b81e99cd4b62..8ddfc1677eeb 100644 --- a/drivers/pci/pci.h +++ b/drivers/pci/pci.h @@ -958,6 +958,7 @@ static inline void of_pci_remove_host_bridge_node(struc= t pci_host_bridge *bridge =20 #ifdef CONFIG_PCIEAER void pci_no_aer(void); +void pci_aer_panic(void); void pci_aer_init(struct pci_dev *dev); void pci_aer_exit(struct pci_dev *dev); extern const struct attribute_group aer_stats_attr_group; @@ -968,6 +969,7 @@ void pci_save_aer_state(struct pci_dev *dev); void pci_restore_aer_state(struct pci_dev *dev); #else static inline void pci_no_aer(void) { } +static inline void pci_aer_panic(void) { } static inline void pci_aer_init(struct pci_dev *d) { } static inline void pci_aer_exit(struct pci_dev *d) { } static inline void pci_aer_clear_fatal_status(struct pci_dev *dev) { } diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c index ade98c5a19b9..fa51fb8a5fe7 100644 --- a/drivers/pci/pcie/aer.c +++ b/drivers/pci/pcie/aer.c @@ -112,6 +112,7 @@ struct aer_stats { PCI_ERR_ROOT_MULTI_UNCOR_RCV) =20 static bool pcie_aer_disable; +static bool pcie_aer_panic; static pci_ers_result_t aer_root_reset(struct pci_dev *dev); =20 void pci_no_aer(void) @@ -119,6 +120,11 @@ void pci_no_aer(void) pcie_aer_disable =3D true; } =20 +void pci_aer_panic(void) +{ + pcie_aer_panic =3D true; +} + bool pci_aer_available(void) { return !pcie_aer_disable && pci_msi_enabled(); --=20 2.25.1 From nobody Fri Dec 19 19:04:59 2025 Received: from m16.mail.163.com (m16.mail.163.com [220.197.31.5]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 858C71DE4CE; Fri, 16 May 2025 16:56:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=220.197.31.5 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747414598; cv=none; b=QSVaYlmRJld37C44/QT9RjQJc4Y8N1+srXuQUJjv3fo5zpbXAnKKEQ9Z0yUzQWOAbQSFq6b5Kb8JknIm4k5vzWC/YXEi++eD01Wfs9ykcGEQMttEDz/LrkhSCcI1UwzYrm2EcktXD2yU/9CplyK0RkSmz+15fIF2RR3dLuH9Y3A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747414598; c=relaxed/simple; bh=sxk47qLZQGS5eU2o2fnvdm0YGf8LXnaJBJAQVWreRlg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=sK/Ee1n3JGhPe9vLlHkUdJBszZ/pEI1vc6aES29HAtP7N1Q45uG8mCAAKADY9xpNwlvHo/kwfsy+K6chPMls1B7iuPi3m2MRL5CvdrpewyGMCoFQoTtj9vox3JKwX6SSisEoUVN63eqO0VNqO5WwGs3JeycLCPjSt9pMcJCXi1A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com; spf=pass smtp.mailfrom=163.com; dkim=pass (1024-bit key) header.d=163.com header.i=@163.com header.b=paU10sG4; arc=none smtp.client-ip=220.197.31.5 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=163.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=163.com header.i=@163.com header.b="paU10sG4" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:To:Subject:Date:Message-Id:MIME-Version; bh=Ct nFyydU4fr89wS3U8rjM2P3apj75aODrTPV9Nlg/9Q=; b=paU10sG4czve6u6TW9 Www1Izjma48yhpYZWV9CNfchPXUSpiDjZvbkroqrtE8hhV9OorB95yW+2PenX1aW LG764BB3rg5xTqRPIetuVVl4qmusY0yWP1lhlzlsfnjLw7eXT5mxblqCnLLoFaK9 lfr/pvUHZ1fjlqEBPLoeLkuds= Received: from localhost.localdomain (unknown []) by gzga-smtp-mtada-g0-3 (Coremail) with SMTP id _____wB3lOX6bSdoVElgBw--.64634S5; Sat, 17 May 2025 00:55:24 +0800 (CST) From: Hans Zhang <18255117159@163.com> To: bhelgaas@google.com, tglx@linutronix.de, kw@linux.com, manivannan.sadhasivam@linaro.org, mahesh@linux.ibm.com Cc: oohall@gmail.com, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, Hans Zhang Subject: [PATCH 3/4] PCI/AER: Expose AER panic state via pci_aer_panic_enabled() Date: Sat, 17 May 2025 00:55:17 +0800 Message-Id: <20250516165518.125495-4-18255117159@163.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250516165518.125495-1-18255117159@163.com> References: <20250516165518.125495-1-18255117159@163.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 X-CM-TRANSID: _____wB3lOX6bSdoVElgBw--.64634S5 X-Coremail-Antispam: 1Uf129KBjvJXoW7Cr1xCw1UCr4fAr1UZr48tFb_yoW8ZF43pF Z5J34rAr4rGF9YgFWkZ3W8Za4rZ3s7t34rJFWkG395uFnxAa45J3s3AFyUXFn7XrWDuF1a yFy5tr13WF4rAaUanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x07jmc_fUUUUU= X-CM-SenderInfo: rpryjkyvrrlimvzbiqqrwthudrp/xtbBDwlPo2gnaDaNVQAAsj Content-Type: text/plain; charset="utf-8" From: Hans Zhang Add pci_aer_panic_enabled() to check if aer_panic is enabled system-wide. Export the function for use in error recovery logic. Signed-off-by: Hans Zhang --- drivers/pci/pci.h | 2 ++ drivers/pci/pcie/aer.c | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h index 8ddfc1677eeb..f92928dadc6a 100644 --- a/drivers/pci/pci.h +++ b/drivers/pci/pci.h @@ -959,6 +959,7 @@ static inline void of_pci_remove_host_bridge_node(struc= t pci_host_bridge *bridge #ifdef CONFIG_PCIEAER void pci_no_aer(void); void pci_aer_panic(void); +bool pci_aer_panic_enabled(void); void pci_aer_init(struct pci_dev *dev); void pci_aer_exit(struct pci_dev *dev); extern const struct attribute_group aer_stats_attr_group; @@ -970,6 +971,7 @@ void pci_restore_aer_state(struct pci_dev *dev); #else static inline void pci_no_aer(void) { } static inline void pci_aer_panic(void) { } +static inline bool pci_aer_panic_enabled(void) { return false; } static inline void pci_aer_init(struct pci_dev *d) { } static inline void pci_aer_exit(struct pci_dev *d) { } static inline void pci_aer_clear_fatal_status(struct pci_dev *dev) { } diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c index fa51fb8a5fe7..4fd7db90b77c 100644 --- a/drivers/pci/pcie/aer.c +++ b/drivers/pci/pcie/aer.c @@ -125,6 +125,18 @@ void pci_aer_panic(void) pcie_aer_panic =3D true; } =20 +/** + * pci_aer_panic_enabled() - Are AER panic enabled system-wide? + * + * Return: true if AER panic has not been globally disabled through ACPI F= ADT, + * PCI bridge quirks, or the "pci=3Daer_panic" kernel command-line option. + */ +bool pci_aer_panic_enabled(void) +{ + return pcie_aer_panic; +} +EXPORT_SYMBOL(pci_aer_panic_enabled); + bool pci_aer_available(void) { return !pcie_aer_disable && pci_msi_enabled(); --=20 2.25.1 From nobody Fri Dec 19 19:04:59 2025 Received: from m16.mail.163.com (m16.mail.163.com [220.197.31.2]) by smtp.subspace.kernel.org (Postfix) with ESMTP id C0ACE222577; Fri, 16 May 2025 16:56:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=220.197.31.2 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747414572; cv=none; b=bOnjdWYAtSCLWwKEeU2Qr6+JhNsEsT3S04w3Xbr0ZQ5PLTx9d2yRX3c64u+Ds7p/n9Ft7Xbqgs0m9ddSDh/7iMwd+0q/BlrUVE+LfkB8ox84vHRrdDI+C/X5eOlyXOOcjs8kKU8dzPQdEOrw9PsIRb5m/i0eJsAGAMzJ7j/DPeA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747414572; c=relaxed/simple; bh=XuXxFMrT5gtouRubhK14krzd4IQ2zNIzGBP4HObi6n4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=RKubDr6zB/oI1EhH0079wl+uFJOcBVAZOMnV84yJOYBJ+XDfmL3JajQsxjpIxojZt4TgToHaGkr2rI4/sdIeOjwMXr5hAAj1fcjVuxkZF7swDD2LkiY/QV8p/iAnAMVtZO3VMmbxV+qNXsJDzQF9wdQBAOZ95Hh4owodv7/L0nA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com; spf=pass smtp.mailfrom=163.com; dkim=pass (1024-bit key) header.d=163.com header.i=@163.com header.b=mUGyHCPE; arc=none smtp.client-ip=220.197.31.2 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=163.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=163.com header.i=@163.com header.b="mUGyHCPE" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:To:Subject:Date:Message-Id:MIME-Version; bh=74 e2ez+NMjSxbCJcFI3DWZZ4H948dIsFZZ+N5kavxho=; b=mUGyHCPEgDfrXMi0jq P2CB3/AWyH8hJCzTLolqMhI0e4V4IGviCBt0At2utWdBLd65FOARJWRL4mrtOOY/ CrakLOCLKCbBxFEtyBNBgi8NAGpwjMfyLR2HY01PNkx664iLsdRP/tI6JAQbqiaT kU54I8xefzQvnVO28rXejKLAo= Received: from localhost.localdomain (unknown []) by gzga-smtp-mtada-g0-3 (Coremail) with SMTP id _____wB3lOX6bSdoVElgBw--.64634S6; Sat, 17 May 2025 00:55:25 +0800 (CST) From: Hans Zhang <18255117159@163.com> To: bhelgaas@google.com, tglx@linutronix.de, kw@linux.com, manivannan.sadhasivam@linaro.org, mahesh@linux.ibm.com Cc: oohall@gmail.com, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, Hans Zhang Subject: [PATCH 4/4] PCI/AER: Trigger kernel panic on recovery failure if aer_panic is set Date: Sat, 17 May 2025 00:55:18 +0800 Message-Id: <20250516165518.125495-5-18255117159@163.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250516165518.125495-1-18255117159@163.com> References: <20250516165518.125495-1-18255117159@163.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 X-CM-TRANSID: _____wB3lOX6bSdoVElgBw--.64634S6 X-Coremail-Antispam: 1Uf129KBjvdXoWrZFy8JF47WrW3ZF48Ww17Wrg_yoWDurb_Za y0vr97JrW0vF95Aa1Yvr15Zryjk3Z2g3y8uw10qFyrJFWayrnFga4DXFyayr98CrsYyFyD Awn8Zr1rAr18CjkaLaAFLSUrUUUUjb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUvcSsGvfC2KfnxnUUI43ZEXa7IU8_cTJUUUUU== X-CM-SenderInfo: rpryjkyvrrlimvzbiqqrwthudrp/xtbBDwlPo2gnaDaNVQABsi Content-Type: text/plain; charset="utf-8" From: Hans Zhang Modify pcie_do_recovery() to panic the system when device recovery fails and aer_panic is enabled via kernel command-line. This addresses scenarios where PCIe link errors cause bus hangs requiring forced reboots. Signed-off-by: Hans Zhang --- drivers/pci/pcie/err.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/pci/pcie/err.c b/drivers/pci/pcie/err.c index 31090770fffc..f0994f66d462 100644 --- a/drivers/pci/pcie/err.c +++ b/drivers/pci/pcie/err.c @@ -271,8 +271,12 @@ pci_ers_result_t pcie_do_recovery(struct pci_dev *dev, =20 pci_uevent_ers(bridge, PCI_ERS_RESULT_DISCONNECT); =20 - /* TODO: Should kernel panic here? */ - pci_info(bridge, "device recovery failed\n"); + if (!pci_aer_panic_enabled()) + pci_info(bridge, "%s: device recovery failed\n", + pci_name(bridge)); + else + panic("Kernel panic: %s: device recovery failed\n", + pci_name(bridge)); =20 return status; } --=20 2.25.1