From patchwork Wed Dec 13 22:36:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ben Cheatham X-Patchwork-Id: 13491983 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="FTTmIBHZ" Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2070.outbound.protection.outlook.com [40.107.244.70]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 17DA7CD; Wed, 13 Dec 2023 14:37:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aRs7Rz9lPv1Tk/xUJ0Ua/Wgbs+odMTv/cYb/qlUmW78iD/279L3rEVWphrrd1XCg+DSkC1zoPCPCvYgLc4A3DJYFo6PE0FTAdUpvzwoERfm0Ybsj9Z7g/AXQTap84e4fy/u6mo3bWYMXt28tMIoTcu20qNCNTanbLsDAMzElCP2IlDheLwK8gX5br1EOJ3sZ1zwSKaV3bso5yps/fI19VjEFYMgP7BnxJ3jgXmtqoXD4s673IFdtXBxOxJa4CXuEgDuUIIEn0dcJQC7nt2zZRyIUjYFF/qH7ug8l9iheB/Bro0MJEMl2v3TGirNkvzft3jCsfRNv1EnMX92z8RHa6A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=l7KmFurK05tlaO0Jo5x3vuDo/DG7ALfXDDITVqi4IS4=; b=KkJyK63ZOeCZIjvqsiK7xFL5YAw6TyMA7U99qTCXEsAFT2vDOrDZyQtEOCTbGAWutFmOdolZIAAcQaed7KdHgT/ilN7MyZXZWFwPMtCw0TdZ3MQKUsX3+tyvK9bHa9hYPoDzyhxMsX1hd4YOHbyAtY7PBAjxM5y0YA/nBBTwBiOIkdE+d7dcAI96ecsgdOlnI1MqFtHAKV+kwxFIJfG/ucL1q+rdd+BuLXMv3nURMGdYWaRaaN7UDYP2lrRGNo4CqNw8TUCEG74girF22RryjS3v/S4kTw4tlb+x9EXRqxzn35M9kq1y2+5lTPnvZGgdVrCYHvmyEuCkqezK1Uue2w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=intel.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=l7KmFurK05tlaO0Jo5x3vuDo/DG7ALfXDDITVqi4IS4=; b=FTTmIBHZc1VBOd0J7J67Bd21CzePi/sGjepUl6wOt3fW7BOS6hpHxpfNEKPdeVGH40GCr3zvotITX5T+ySgKctzlRXP4+4iVgb1R/zA6il5H1zQA5DXuT6bE7rQcafus/TGxZYweIiCkDA++i0Xjh7kbVVXMEXp/9USJIirnkCs= Received: from PH7PR17CA0068.namprd17.prod.outlook.com (2603:10b6:510:325::12) by DS0PR12MB7802.namprd12.prod.outlook.com (2603:10b6:8:145::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.28; Wed, 13 Dec 2023 22:37:28 +0000 Received: from SN1PEPF0002BA52.namprd03.prod.outlook.com (2603:10b6:510:325:cafe::6) by PH7PR17CA0068.outlook.office365.com (2603:10b6:510:325::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.26 via Frontend Transport; Wed, 13 Dec 2023 22:37:27 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by SN1PEPF0002BA52.mail.protection.outlook.com (10.167.242.75) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7091.26 via Frontend Transport; Wed, 13 Dec 2023 22:37:27 +0000 Received: from bcheatha-HP-EliteBook-845-G8-Notebook-PC.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Wed, 13 Dec 2023 16:37:22 -0600 From: Ben Cheatham To: , , , , , , , CC: , , Subject: [PATCH v8 1/5] cxl, ACPI, APEI, EINJ: Add CXL_EINJ Kconfig option Date: Wed, 13 Dec 2023 16:36:58 -0600 Message-ID: <20231213223702.543419-2-Benjamin.Cheatham@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231213223702.543419-1-Benjamin.Cheatham@amd.com> References: <20231213223702.543419-1-Benjamin.Cheatham@amd.com> Precedence: bulk X-Mailing-List: linux-cxl@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF0002BA52:EE_|DS0PR12MB7802:EE_ X-MS-Office365-Filtering-Correlation-Id: 19322675-5b89-47b2-bb6f-08dbfc2c15d1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: SrAUKeN4/TjOueSgUQrCfnv+79gpatHmsGD2l4i0NVMAuCDzoHq7ESx1ZyhShbVaa8hwmW9IhbaCzgykuHeyQQLPoJiAGddFHYOSQ/35eZRWusoKGzRNmjs+OBp/8CidJR46gA0nLt57PcIL8fHbbXl+APG9VTqGiDxzt6JYJuWujNIcph4Qnq0KAJ/LzadyrLqVnafYEadHz5Clx256OeXUq8brYzNXk73BbWWVqoRKIZ15KTt6+NHWQt+Aax0g9IxSR0tWZXxXOvrRRviuqIYDC8MdhskHUK/Rld2yoxECiMpyBrXBXFOpfEtDaPc3UuP4KLsQvReAa1FHH6pzAP3MOO5q6R9k03vjmCDB/4ffZ3GvjX9EvwK39Vj4aLg750Z709v+b6SQls2UNNwzHMB/9vD4UvY/mdwc2Bv1VAQSxxOU9TloLu5JTzJaK7A1oOtcThIhzQiRZ9wvSKdbsDD1odXsi1/B5nSCKtbHetq1ONNB2F55zFaZFdQdF/wNYy4ajaY4xJwyi/F0K5csGQJUsR42OtQ5iDhDR5fw6FhomgDCgZM/wF8dIYSpRkjPKTYXFa/gvtWtzaLW8rIq0anIq+3gEkVg9tNnofucBcMIR1nQyf9aVFUq7WVlJ9S2YbWCJe1/+WqSeEseoK7VQj5vAJWgxIKE7IjL4ki2moEGXOQpOeFF2Vxyiy5POwi6v+sMLbWFymYsYxv/cefRcJk7b+WsKIyXlVFnI+dOR+qWqQSVJi91k32Vr1dg9djnMoXyyh7qdcPGKZbryDKaQ4FhDpQnV6MOerwsYRmnXG4= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(376002)(346002)(396003)(39860400002)(136003)(230922051799003)(186009)(451199024)(1800799012)(64100799003)(82310400011)(40470700004)(46966006)(36840700001)(478600001)(5660300002)(7416002)(40480700001)(2906002)(6666004)(356005)(82740400003)(7696005)(2616005)(26005)(81166007)(86362001)(40460700003)(16526019)(36756003)(1076003)(110136005)(54906003)(70586007)(70206006)(316002)(4326008)(8936002)(8676002)(336012)(426003)(41300700001)(83380400001)(36860700001)(47076005)(36900700001)(2101003);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Dec 2023 22:37:27.7259 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 19322675-5b89-47b2-bb6f-08dbfc2c15d1 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF0002BA52.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7802 Add CONFIG_CXL_EINJ to cxl/Kconfig. This option will allow for the CXL core module to access helpers inside the EINJ module, while also giving users the option of disabling CXL EINJ error types at build time. Also update CONFIG_ACPI_APEI_EINJ to set CONFIG_CXL_EINJ by default. Reviewed-by: Jonathan Cameron Signed-off-by: Ben Cheatham --- drivers/acpi/apei/Kconfig | 1 + drivers/cxl/Kconfig | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/drivers/acpi/apei/Kconfig b/drivers/acpi/apei/Kconfig index 6b18f8bc7be3..4c3f0ec5731e 100644 --- a/drivers/acpi/apei/Kconfig +++ b/drivers/acpi/apei/Kconfig @@ -55,6 +55,7 @@ config ACPI_APEI_MEMORY_FAILURE config ACPI_APEI_EINJ tristate "APEI Error INJection (EINJ)" depends on ACPI_APEI && DEBUG_FS + imply CXL_BUS help EINJ provides a hardware error injection mechanism, it is mainly used for debugging and testing the other parts of diff --git a/drivers/cxl/Kconfig b/drivers/cxl/Kconfig index 8ea1d340e438..6f4adcd733e5 100644 --- a/drivers/cxl/Kconfig +++ b/drivers/cxl/Kconfig @@ -154,4 +154,16 @@ config CXL_PMU monitoring units and provide standard perf based interfaces. If unsure say 'm'. + +config CXL_EINJ + bool "CXL Error INJection Support" + default ACPI_APEI_EINJ + depends on ACPI_APEI_EINJ && ACPI_APEI_EINJ=CXL_BUS + help + Support for CXL protocol Error INJection through debugfs/cxl. + Availability and which errors are supported is dependent on + the host platform. Look to ACPI v6.5 section 18.6.4 and kernel + EINJ documentation for more information. + + If unsure say 'n' endif From patchwork Wed Dec 13 22:36:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ben Cheatham X-Patchwork-Id: 13491984 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="YKBEB0X7" Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2064.outbound.protection.outlook.com [40.107.237.64]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B177EB7; Wed, 13 Dec 2023 14:37:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gOGTtzGB5PcImjAaeS6VmNYu3NmHKY4/ly2j3VAOi+HcmJmA6HF21qpdUu3rTTPNVx8KISIXqEV42rb3Naqa5ywkpxnPMO2CGBz3FbG/HrGFlaPhlt2X8QwgPrNtdWpiizm3IfpPPJC3wAEEQLV1OhuR/04wyOGSEu36VEi2JDoONYWimc2uF6Arm7pdqzGjIZFPlw1H5/efqT077O3smFbLovhk9u+A9qjsU6nyWsAe7n/fss5xNM1ITL55nvXP1+BP5ncZf7r74HN1JUZwz2f1DrbidDB9r/zMEQ+xIGZE5AaFzNBgbaQmewpir7+p6n0zhNER7IHjmqWu5zl97g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=AGCosEJlZsZ9F9LSEHMlNH+Z2wh9CZVnjMMztYZq3dY=; b=nvxigRDnsE0/WxxfpcM9rJj/LGedMGbDINk0zYHqXTGiUdxY/zqBUVT+O/MksJ2wIai/GSXIBvUUcxfUumv+fM0a5q9vHZlk8Ol3j1G9ZCILP/TtImqcgN1hIoqwkpJUSc90TkXqNo7IZ05LmAfoGZ9UMYmRLqarIz98acMXrVvGEI7dcYh0yg/WG0H//vJ7sW/2BfV8W05WzAqgSCr6kIxQQX7mVRwgsLYcdWmPIhqBF26sr7OyV8gu/bXrbGCFyuMrEPRXV1DWmrPom5Q5ASRtg21HZkVz8TIvFow6IIeta6B3++bkfH+mLpW5v6jXL8BttfZP0bLDLxzvwRe+Yw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=intel.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AGCosEJlZsZ9F9LSEHMlNH+Z2wh9CZVnjMMztYZq3dY=; b=YKBEB0X7A34+iY20rTAmYBfnV0ltrVMKon3E4L7HuCKoThdyb3/c0eo5eXjiMZLQ9/LyTLwrZ/iKNKZnA4sLk0+J8V0cyPH0sIh7eRYKuaNuLGjMGc9SOlTrGAds4bk1v/Q9vjE7TTTV0NHtykv9rZiYvmkckczf3gfvMOVa4MA= Received: from BN9PR03CA0848.namprd03.prod.outlook.com (2603:10b6:408:13d::13) by PH0PR12MB8051.namprd12.prod.outlook.com (2603:10b6:510:26d::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.28; Wed, 13 Dec 2023 22:37:44 +0000 Received: from SN1PEPF0002BA4F.namprd03.prod.outlook.com (2603:10b6:408:13d:cafe::98) by BN9PR03CA0848.outlook.office365.com (2603:10b6:408:13d::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.26 via Frontend Transport; Wed, 13 Dec 2023 22:37:44 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by SN1PEPF0002BA4F.mail.protection.outlook.com (10.167.242.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7091.26 via Frontend Transport; Wed, 13 Dec 2023 22:37:43 +0000 Received: from bcheatha-HP-EliteBook-845-G8-Notebook-PC.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Wed, 13 Dec 2023 16:37:40 -0600 From: Ben Cheatham To: , , , , , , , CC: , , Subject: [PATCH v8 2/5] ACPI, APEI, EINJ: Add wrapper __init function Date: Wed, 13 Dec 2023 16:36:59 -0600 Message-ID: <20231213223702.543419-3-Benjamin.Cheatham@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231213223702.543419-1-Benjamin.Cheatham@amd.com> References: <20231213223702.543419-1-Benjamin.Cheatham@amd.com> Precedence: bulk X-Mailing-List: linux-cxl@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF0002BA4F:EE_|PH0PR12MB8051:EE_ X-MS-Office365-Filtering-Correlation-Id: 026c98ec-9d0e-4f2b-d980-08dbfc2c1f46 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: sTuds1FUjtmXMt0EDqYMODiHyaEOwdLJBngEH7Z3lP1yf1hRktp58yDsb5OT3CLGmfkpZducBlvEH/Vrha7zKuX2utjaH6w1Gh0TGBpNAxH2V+ghPUGySwK0WJfVJ2t1lSv1fJA1nNcMiPRdSuNo0XhdbiSZRZHRyoC0AdGXUcMDa1aghRVNsi1cwb+AaqdFnmvdA52NNZCBhgZK9kPlo+/iDg//SngRX+x/NvqLyHnXbbvKrJLC1dVybJLZS+7pDDlx3GA5L2xTrdesLfzKTGsX/tNixaHeX3+FaWmHuq3+EGi4wclwmabGyvnM5anI7Yv2XZ3kIUUK7ispKZ1RrCRgrvhrFfotqaqT4fZu1G4a/2sq3coOoya55PQBXybOhYFvuDakOZh6nhiuv9s6TZIB5FDpvgniGeknwAH68oeNISsx0gTCxwpL3YWHLjLpgaJXDuACk/ycPFblN+SXAPP0o7FiSvjAF/2aoJEmj5VjuD4xqnEo6Hf8A2AJG3CopDnhw/1Vbm8ihVEo2CfuiUIBx+1KKgep/Ll5ggR7tgcE5x8rZCAdSzF5I7Ll1pYww32hjXewovNxFA/AStH+XF3Ppq6Y7GSmb+9R6qPFT9AeuL/ZjetTSrIa/Uede/e5zpSefel+f1/95BU1t3UtQINyvsP36MDWSVjoPBTLitc/ej0q4ORKBPLy3mJv5/50zfiwetwBuLOLUeA3JbkQQUgy1UtWHMEfi+7IZ+XNY3I0RDUr1pVYDN3nHwNg3BRflDY+s0e9bCcmzh6fPijX+MkVlch3UavMlPcbdXAocT8= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(396003)(136003)(346002)(376002)(39860400002)(230922051799003)(64100799003)(451199024)(82310400011)(1800799012)(186009)(46966006)(40470700004)(36840700001)(7416002)(2906002)(40460700003)(86362001)(4326008)(8676002)(8936002)(316002)(5660300002)(41300700001)(36756003)(478600001)(36860700001)(426003)(16526019)(40480700001)(2616005)(1076003)(336012)(26005)(6666004)(356005)(47076005)(82740400003)(81166007)(7696005)(83380400001)(110136005)(70206006)(70586007)(54906003)(36900700001)(2101003);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Dec 2023 22:37:43.5929 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 026c98ec-9d0e-4f2b-d980-08dbfc2c1f46 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF0002BA4F.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB8051 The CXL core module should be able to load regardless of whether the EINJ module initializes correctly. Instead of porting the EINJ module to a library module, add a wrapper __init function around einj_init() to pin the EINJ module even if it does not initialize correctly. This should be fine since the EINJ module is only ever unloaded manually. One note: since the CXL core will be calling into the EINJ module directly, even though it may not have initialized, all CXL helper functions *have* to check if the EINJ module is initialized before doing any work. Reviewed-by: Jonathan Cameron Signed-off-by: Ben Cheatham Signed-off-by: Dan Williams --- drivers/acpi/apei/einj.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/drivers/acpi/apei/einj.c b/drivers/acpi/apei/einj.c index 013eb621dc92..26a887d2a5cd 100644 --- a/drivers/acpi/apei/einj.c +++ b/drivers/acpi/apei/einj.c @@ -615,6 +615,8 @@ static int available_error_type_show(struct seq_file *m, void *v) DEFINE_SHOW_ATTRIBUTE(available_error_type); +static bool einj_initialized; + static int error_type_get(void *data, u64 *val) { *val = error_type; @@ -684,7 +686,7 @@ static int einj_check_table(struct acpi_table_einj *einj_tab) return 0; } -static int __init einj_init(void) +static int __init __einj_init(void) { int rc; acpi_status status; @@ -782,10 +784,31 @@ static int __init einj_init(void) return rc; } +static int __init einj_init(void) +{ + int rc = __einj_init(); + + einj_initialized = (rc == 0); + + /* + * CXL needs to be able to link and call its EINJ helpers + * regardless of whether the EINJ table is present and initialized + * correctly. CXL helpers check @einj_initialized before + * doing any work. + */ + if (IS_ENABLED(CONFIG_CXL_EINJ)) + return 0; + + return rc; +} + static void __exit einj_exit(void) { struct apei_exec_context ctx; + if (!einj_initialized) + return; + if (einj_param) { acpi_size size = (acpi5) ? sizeof(struct set_error_type_with_address) : From patchwork Wed Dec 13 22:37:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ben Cheatham X-Patchwork-Id: 13491985 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="aqFUEwTL" Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2085.outbound.protection.outlook.com [40.107.94.85]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DE5E1CD; Wed, 13 Dec 2023 14:38:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iVIdFYvcks/CusGRxDFkUHkcWxYmhVdRxgD0YkHeEqK2UkUI7tyMNQ3uhRg9a5Vyl253dXskQmyXB7mG3AzWHuj90+fJYZaaOnMnH4MAnaqhX9k67fR7dy2GoLwnlKcKSo1ySaDrmH2EIyuLjcMzlJzTXBnCAdFmLoVDzYXjXMFUcjmokB6cbp30A1bwAcm/en8JfThkws0DSEXBLl/MCKiCt3A1WK0KJlRuhlhHb39gnVA3QUo3KIwCS8G16rxiTwDqhXCMs7Ll9qsXXepUsswM1BB5c5u94Qh/sGMWyOv/UlGFe0es5l01KeeJb+48f4paO6xzXs+aez6O0X08Vw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=4KLZr8xp+VaqrgFkQC4+WkAB6bLmosaAs7WhRiutUOM=; b=isVrEbwA0bc/PDngS8ce6RkdEx9ETEL9/ToDuSN3I5z+JXiVFtb5Coa8npIoogxQWIMpAhg1w3dJOnyM6A3rAjDg0dmYVK//bH3R/Y4GS5fsWJ3Y5ttOhpH6ZpKy3H+u6+8Znu3VsGSA9e/UAcmc+YD+N0/OclUU6Th7IG/7SuYQcE+j78+3ZMgYGJxohK0/dEA88MhU0BJs/PLeby3MsCcW1F02tl8byI60eHIFO4+d6Z/1dBHbAM9/CxE113JN8pAW/PRyX7xZgXVvDPoYKCHprKihLah5FqypPh5swJ9CdZKJ2RcNER67qo1vSpdH7vUDks6quLZuVgPY3W8W5Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=intel.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4KLZr8xp+VaqrgFkQC4+WkAB6bLmosaAs7WhRiutUOM=; b=aqFUEwTLQFE79hwxiBUPnZy+H+mNwT6geCw3Bp/nzfLCGDn1Yb6jZvUHjjP/rFmLFGUviaffh/qcOsLDiToyRKVguJr0iLWn0OTb5HBzJ0IIu/cq0Dw61d/DCkzmM62+yBmkyq9ufMYly49FNVvhgQuGIlQ09M41tmCQRrPFSJY= Received: from PH0P220CA0006.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:d3::15) by SJ0PR12MB5439.namprd12.prod.outlook.com (2603:10b6:a03:3ae::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.26; Wed, 13 Dec 2023 22:38:00 +0000 Received: from SN1PEPF0002BA4C.namprd03.prod.outlook.com (2603:10b6:510:d3:cafe::c1) by PH0P220CA0006.outlook.office365.com (2603:10b6:510:d3::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.26 via Frontend Transport; Wed, 13 Dec 2023 22:38:00 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by SN1PEPF0002BA4C.mail.protection.outlook.com (10.167.242.69) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7091.26 via Frontend Transport; Wed, 13 Dec 2023 22:37:59 +0000 Received: from bcheatha-HP-EliteBook-845-G8-Notebook-PC.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Wed, 13 Dec 2023 16:37:56 -0600 From: Ben Cheatham To: , , , , , , , CC: , , Subject: [PATCH v8 3/5] ACPI: Add CXL protocol error defines Date: Wed, 13 Dec 2023 16:37:00 -0600 Message-ID: <20231213223702.543419-4-Benjamin.Cheatham@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231213223702.543419-1-Benjamin.Cheatham@amd.com> References: <20231213223702.543419-1-Benjamin.Cheatham@amd.com> Precedence: bulk X-Mailing-List: linux-cxl@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF0002BA4C:EE_|SJ0PR12MB5439:EE_ X-MS-Office365-Filtering-Correlation-Id: a85b365f-110d-4045-c39d-08dbfc2c28eb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xXhqmcAocQCd+vGag/kpp5Cq2uvkcSZVrHh2TiLlc/0QPBW5QVac1B87fCuXxnzR0d4gCSbtgsxgyjvyOH25FwaBy/368LbLwyvjZ3mQA3cZb3ObKNx7vXmvk0d0CWOu4Gdn+tk7HDiDCYjNDQMjRJXF3QLz1mM1ec/rXVDFjAabcVF2hes7z9Rol+xugtgY2I+yN6hcqPBeM5vEnswOXOZEt+CNvYZ5qPolMd08LFWo4XtZI5gSxicN7rVGs5ncCWRPuebTvG7M2B+0YGVOSmVJyHZuy8gogl4bbM+QFsUdmaeBVmuk9zsw7dA9/HZLh719BnkPeweJuYsqP7Ap3y8fXtP9zzniqjc2nuApG8l6Yq2IizYXZKR5rGA2kflnFoWoM8d1wSxosmqPIQbqIYTfuRCtY5w79EEOCDl+nsC0sVwRbxsSwGVhAQf7swfgsp/EUgaW1UntJkgmsk/Mgeazuc6hRfh4Lzgl5uegv86Cm9LJ8q4ir50cXLF3eTKAuBwDzs1EGzygGwampLSMRS+xVh3ieAYevDn6VS6VrfJjs7BPz9PllpgP7aYQFYCzcBCwLK/ViYWriGlySLGCm7T1hpiDOL7cWyAixHZSmNSyRetjEanxMSEYE6346sjq0E6nt4lWuvbwgidZXiwPp8ylnyJtx3dmxF6n8P58nRPvP63JULNbdHDPrEct50RAKM7/inF3OYy2ujkfD6BFmKs5tjmo+7e7eJVB/XpSCL8DURgFWcSwUiDNL05rsc4MwEzaekxnqPgRns/6QZjTES59Nbk54yA0DLKXLUxhY/A= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(136003)(39860400002)(346002)(396003)(376002)(230922051799003)(64100799003)(82310400011)(186009)(451199024)(1800799012)(40470700004)(36840700001)(46966006)(2616005)(83380400001)(47076005)(41300700001)(26005)(336012)(426003)(16526019)(356005)(81166007)(36860700001)(8936002)(316002)(54906003)(8676002)(7416002)(2906002)(1076003)(4326008)(5660300002)(478600001)(70586007)(7696005)(6666004)(110136005)(966005)(70206006)(82740400003)(86362001)(36756003)(40480700001)(40460700003)(2101003)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Dec 2023 22:37:59.7732 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a85b365f-110d-4045-c39d-08dbfc2c28eb X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF0002BA4C.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB5439 Add CXL protocol error defines to include/actbl1.h. Reviewed-by: Jonathan Cameron Signed-off-by: Ben Cheatham --- I made a pull request for this support in the ACPICA project which has been accepted (link below), so this patch is temporary and I expect it to be dropped once the kernel updates from ACPICA. [1]: Link: https://github.com/acpica/acpica/pull/884 --- include/acpi/actbl1.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/include/acpi/actbl1.h b/include/acpi/actbl1.h index a33375e055ad..1f58c5d86869 100644 --- a/include/acpi/actbl1.h +++ b/include/acpi/actbl1.h @@ -1096,6 +1096,12 @@ enum acpi_einj_command_status { #define ACPI_EINJ_PLATFORM_CORRECTABLE (1<<9) #define ACPI_EINJ_PLATFORM_UNCORRECTABLE (1<<10) #define ACPI_EINJ_PLATFORM_FATAL (1<<11) +#define ACPI_EINJ_CXL_CACHE_CORRECTABLE (1<<12) +#define ACPI_EINJ_CXL_CACHE_UNCORRECTABLE (1<<13) +#define ACPI_EINJ_CXL_CACHE_FATAL (1<<14) +#define ACPI_EINJ_CXL_MEM_CORRECTABLE (1<<15) +#define ACPI_EINJ_CXL_MEM_UNCORRECTABLE (1<<16) +#define ACPI_EINJ_CXL_MEM_FATAL (1<<17) #define ACPI_EINJ_VENDOR_DEFINED (1<<31) /******************************************************************************* From patchwork Wed Dec 13 22:37:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ben Cheatham X-Patchwork-Id: 13491986 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="4dQyI0SQ" Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2057.outbound.protection.outlook.com [40.107.244.57]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 28384B7; Wed, 13 Dec 2023 14:38:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UghiPeyWmLkJsdfZAm7S9IYbo/02VtEovDwUVnOJbXjac7XdYiMVmEyfVyJ8sn+0TJ8eiFD3KdWDGTqfR4ZP8rkl6OU4CNs4V4GA7tzO3nJL/Y2BaWqiXS9xs2/28O0sveT0lmpmyQY8PtFJlBXmApNgxOP1ilNAio8VrRD2gmO3hXMfF5cZGGyTFdEDtACACVx4UHUglZBaSHOUUyq7VRFN4r6PsAIcJMTDn7V2wSZLEx9Wag+4RY5glW9BcHcBa/yH3sCac10fEBPoiEUWWMLBByxMRBZEeRV4TKYBzRKIY5dDmYNRfUQs+F03tiouribu1yJc65EBkLfW3kL87w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=vRPMSPiu+6rXlJNJFXh4cGcP3rx4Svks1sPSETCLZfA=; b=OT4Vh3OMz/T8o1xkgBaX4+L+it3IQ0muHKheYCW0xWV/XQSslYIbk0Pr3aOlAIUVHE9SMreaMG4WgBvUMbdvU3T8NuPfwAJWoVFqPRg/VTu+/qom4bWMvrsbs8+/FGAL1i4JS81Bz/2ud3tO51QBT4qoxlgmh3WN297hDm/fMxaqbr7hwMGdNY33WNxN5vIWc/W31EBub4eK73GfyDXjzkSxvu/pbw4EqRNZ2/1y4YK7b82EgHfDlRCvAGlTHd/wcuEFVKHVbHzs44AgIMPvrZsOAXOCrbvZeuwgvrF7fxWTe2oEvN6H6/yPND/drvlK0HgHVy5PMDdwkHINlGLlCg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=intel.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vRPMSPiu+6rXlJNJFXh4cGcP3rx4Svks1sPSETCLZfA=; b=4dQyI0SQKjs8sBIzZ1NV1NemkkcVeT8sqaFrbEPdWcohD3FGm4OqDVndAyZxJhOOO51z9YPDDxonLo5TdrCxXFVQoAAFVxAr0I0iNdcnKHklwV/Ytd1Uykbok7yF7FWhTJ8yHZSlEd4+YnMBlZJY3885pzc/FG7k/TVtWOL+dzE= Received: from SA0PR11CA0168.namprd11.prod.outlook.com (2603:10b6:806:1bb::23) by CH0PR12MB5057.namprd12.prod.outlook.com (2603:10b6:610:e0::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.26; Wed, 13 Dec 2023 22:38:12 +0000 Received: from SN1PEPF0002BA50.namprd03.prod.outlook.com (2603:10b6:806:1bb:cafe::d1) by SA0PR11CA0168.outlook.office365.com (2603:10b6:806:1bb::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.26 via Frontend Transport; Wed, 13 Dec 2023 22:38:12 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by SN1PEPF0002BA50.mail.protection.outlook.com (10.167.242.73) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7091.26 via Frontend Transport; Wed, 13 Dec 2023 22:38:12 +0000 Received: from bcheatha-HP-EliteBook-845-G8-Notebook-PC.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Wed, 13 Dec 2023 16:38:10 -0600 From: Ben Cheatham To: , , , , , , , CC: , , Subject: [PATCH v8 4/5] cxl/core, EINJ: Add CXL debugfs files and EINJ functions Date: Wed, 13 Dec 2023 16:37:01 -0600 Message-ID: <20231213223702.543419-5-Benjamin.Cheatham@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231213223702.543419-1-Benjamin.Cheatham@amd.com> References: <20231213223702.543419-1-Benjamin.Cheatham@amd.com> Precedence: bulk X-Mailing-List: linux-cxl@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF0002BA50:EE_|CH0PR12MB5057:EE_ X-MS-Office365-Filtering-Correlation-Id: d02f6c4e-446d-4233-2581-08dbfc2c3075 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: sAWMcsTdiSuY1PRv6YzwkMzTD/8Y71aze/28Yx7DRdrUaZ4dizDQzghLIXJPFLxlI5qA43HLQDJlfw3Nk+bm+L5rMvuCa9sddMBDPDR0X8Pl8SMq9vwLVi0oj+d8jzBdw06vnIhNu2V1VJi4dEw5JzDKHCs7drJZENx2e315ZpbnNApEKc9ZtKparOHjU4om/jRP855f/MNfoagA0OLyS7zYGDWyuWeVLx1c5Dd19JzYZLWkwkF9lVcBLgqPY94V4geeCiLvGLTYxK/V4C+HTFWRlf1Q+4IG22V7sVI5rTWEi7qaIMKMteWrQvX9GKodiNOdU97EacvWiNgXwyjXmxoM872OGCm6LRDUV9Ey1Q6ZKfdZs30U78BdSlSu46EsmOjnWsPL/loXMb/Oh8YfN+zsUl/tNHZdCDAoedMOKib8LuCJuAGVfsKR988n+2ssA+KanuSEQd75idfKqU7l6o05NKXWu8WvT/DuiduDIpNt6/Efgr6REvqLleSsNAEmKAaSEbfk1u4rpu691tfXW5L/gcURQpNAnyo2vMrDM6o9MV2WKFhb0AxVzpKHC/QAJhMYguO9PkfC/u1TiALFIU1W2ibueTUGP45LKVrA7LgPFuQ428Vh7v6qUo2FROm7JwWvxnAsoj7dBOI9HNGr9hYKFbZaLGPzdrGF/AfNxSA4zlyQhPxtlTwWsQ1R+SzmnqQg7nUJOwt2h3A3hVzomXLOFUw2g1T4SWvZ9Hxuhft62pJAIFZp0uOjxFCZmqilyRkHDllpmMJrvTwovCRH/WB2jWkzIOeQyRo/8/dyT4Y= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(376002)(136003)(396003)(39860400002)(346002)(230922051799003)(451199024)(1800799012)(64100799003)(186009)(82310400011)(36840700001)(40470700004)(46966006)(40460700003)(336012)(26005)(16526019)(426003)(83380400001)(2616005)(7696005)(1076003)(47076005)(36860700001)(8676002)(8936002)(5660300002)(4326008)(41300700001)(7416002)(30864003)(2906002)(6666004)(478600001)(316002)(54906003)(70206006)(70586007)(110136005)(36756003)(86362001)(356005)(81166007)(82740400003)(40480700001)(36900700001)(2101003);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Dec 2023 22:38:12.4176 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d02f6c4e-446d-4233-2581-08dbfc2c3075 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF0002BA50.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR12MB5057 Implement CXL helper functions in the EINJ module for getting the available CXL protocol error types and injecting CXL errors and export them to sysfs under kernel/debug/cxl. The kernel/debug/cxl/einj_types file will print the available CXL protocol errors in the same format as the available_error_types file provided by the EINJ module. The kernel/debug/cxl/$dport_dev/einj_inject is functionally the same as the error_type and error_inject files provided by the EINJ module, i.e.: writing an error type into $dport_dev/einj_inject will inject said error type into the CXL dport represented by $dport_dev. Reviewed-by: Jonathan Cameron Signed-off-by: Ben Cheatham --- Documentation/ABI/testing/debugfs-cxl | 23 ++++ drivers/acpi/apei/einj.c | 144 ++++++++++++++++++++++++-- drivers/cxl/core/port.c | 33 ++++++ drivers/cxl/einj.h | 58 +++++++++++ 4 files changed, 248 insertions(+), 10 deletions(-) create mode 100644 drivers/cxl/einj.h diff --git a/Documentation/ABI/testing/debugfs-cxl b/Documentation/ABI/testing/debugfs-cxl index fe61d372e3fa..97a8684bad84 100644 --- a/Documentation/ABI/testing/debugfs-cxl +++ b/Documentation/ABI/testing/debugfs-cxl @@ -33,3 +33,26 @@ Description: device cannot clear poison from the address, -ENXIO is returned. The clear_poison attribute is only visible for devices supporting the capability. + +What: /sys/kernel/debug/cxl/einj_types +Date: November, 2023 +KernelVersion: v6.8 +Contact: linux-cxl@vger.kernel.org +Description: + (RO) Prints the CXL protocol error types made available by + the platform in the format "0x ". + The can be written to einj_inject to inject + into a chosen dport. This file is only visible if + CONFIG_CXL_EINJ is enabled. + +What: /sys/kernel/debug/cxl/$dport_dev/einj_inject +Date: November, 2023 +KernelVersion: v6.8 +Contact: linux-cxl@vger.kernel.org +Description: + (WO) Writing an integer to this file injects the corresponding + CXL protocol error into $dport_dev (integer to type mapping is + available by reading from einj_types). If the dport was + enumerated in RCH mode, a CXL 1.1 error is injected, otherwise + a CXL 2.0 error is injected. This file is only visible if + CONFIG_CXL_EINJ is enabled. diff --git a/drivers/acpi/apei/einj.c b/drivers/acpi/apei/einj.c index 26a887d2a5cd..1a2195779b52 100644 --- a/drivers/acpi/apei/einj.c +++ b/drivers/acpi/apei/einj.c @@ -24,6 +24,7 @@ #include #include "apei-internal.h" +#include "../../cxl/einj.h" #undef pr_fmt #define pr_fmt(fmt) "EINJ: " fmt @@ -36,6 +37,12 @@ #define MEM_ERROR_MASK (ACPI_EINJ_MEMORY_CORRECTABLE | \ ACPI_EINJ_MEMORY_UNCORRECTABLE | \ ACPI_EINJ_MEMORY_FATAL) +#define CXL_ERROR_MASK (ACPI_EINJ_CXL_CACHE_CORRECTABLE | \ + ACPI_EINJ_CXL_CACHE_UNCORRECTABLE | \ + ACPI_EINJ_CXL_CACHE_FATAL | \ + ACPI_EINJ_CXL_MEM_CORRECTABLE | \ + ACPI_EINJ_CXL_MEM_UNCORRECTABLE | \ + ACPI_EINJ_CXL_MEM_FATAL) /* * ACPI version 5 provides a SET_ERROR_TYPE_WITH_ADDRESS action. @@ -537,8 +544,11 @@ static int einj_error_inject(u32 type, u32 flags, u64 param1, u64 param2, if (type & ACPI5_VENDOR_BIT) { if (vendor_flags != SETWA_FLAGS_MEM) goto inject; - } else if (!(type & MEM_ERROR_MASK) && !(flags & SETWA_FLAGS_MEM)) + } else if (!(type & MEM_ERROR_MASK) && !(flags & SETWA_FLAGS_MEM)) { goto inject; + } else if ((type & CXL_ERROR_MASK) && (flags & SETWA_FLAGS_MEM)) { + goto inject; + } /* * Disallow crazy address masks that give BIOS leeway to pick @@ -590,6 +600,9 @@ static const char * const einj_error_type_string[] = { "0x00000200\tPlatform Correctable\n", "0x00000400\tPlatform Uncorrectable non-fatal\n", "0x00000800\tPlatform Uncorrectable fatal\n", +}; + +static const char * const einj_cxl_error_type_string[] = { "0x00001000\tCXL.cache Protocol Correctable\n", "0x00002000\tCXL.cache Protocol Uncorrectable non-fatal\n", "0x00004000\tCXL.cache Protocol Uncorrectable fatal\n", @@ -617,29 +630,44 @@ DEFINE_SHOW_ATTRIBUTE(available_error_type); static bool einj_initialized; -static int error_type_get(void *data, u64 *val) +int einj_cxl_available_error_type_show(struct seq_file *m, void *v) { - *val = error_type; + int cxl_err, rc; + u32 available_error_type = 0; + + if (!einj_initialized) + return -ENXIO; + + rc = einj_get_available_error_type(&available_error_type); + if (rc) + return rc; + + for (int pos = 0; pos < ARRAY_SIZE(einj_cxl_error_type_string); pos++) { + cxl_err = ACPI_EINJ_CXL_CACHE_CORRECTABLE << pos; + + if (available_error_type & cxl_err) + seq_puts(m, einj_cxl_error_type_string[pos]); + } return 0; } +EXPORT_SYMBOL_NS_GPL(einj_cxl_available_error_type_show, CXL); -static int error_type_set(void *data, u64 val) +static int validate_error_type(u64 type) { + u32 tval, vendor, available_error_type = 0; int rc; - u32 available_error_type = 0; - u32 tval, vendor; /* Only low 32 bits for error type are valid */ - if (val & GENMASK_ULL(63, 32)) + if (type & GENMASK_ULL(63, 32)) return -EINVAL; /* * Vendor defined types have 0x80000000 bit set, and * are not enumerated by ACPI_EINJ_GET_ERROR_TYPE */ - vendor = val & ACPI5_VENDOR_BIT; - tval = val & 0x7fffffff; + vendor = type & ACPI5_VENDOR_BIT; + tval = type & 0x7fffffff; /* Only one error type can be specified */ if (tval & (tval - 1)) @@ -648,9 +676,105 @@ static int error_type_set(void *data, u64 val) rc = einj_get_available_error_type(&available_error_type); if (rc) return rc; - if (!(val & available_error_type)) + if (!(type & available_error_type)) return -EINVAL; } + + return 0; +} + +static int cxl_dport_get_sbdf(struct pci_dev *dport_dev, u64 *sbdf) +{ + struct pci_bus *pbus; + struct pci_host_bridge *bridge; + u64 seg = 0, bus; + + pbus = dport_dev->bus; + bridge = pci_find_host_bridge(pbus); + + if (!bridge) + return -ENODEV; + + if (bridge->domain_nr != PCI_DOMAIN_NR_NOT_SET) + seg = bridge->domain_nr << 24; + + bus = pbus->number << 16; + *sbdf = seg | bus | dport_dev->devfn; + + return 0; +} + +int einj_cxl_inject_rch_error(u64 rcrb, u64 type) +{ + u64 param1 = 0, param2 = 0, param4 = 0; + u32 flags; + int rc; + + if (!einj_initialized) + return -ENXIO; + + /* Only CXL error types can be specified */ + if (type & ~CXL_ERROR_MASK || (type & ACPI5_VENDOR_BIT)) + return -EINVAL; + + rc = validate_error_type(type); + if (rc) + return rc; + + param1 = (u64) rcrb; + param2 = 0xfffffffffffff000; + flags = 0x2; + + return einj_error_inject(type, flags, param1, param2, 0, param4); +} +EXPORT_SYMBOL_NS_GPL(einj_cxl_inject_rch_error, CXL); + +int einj_cxl_inject_error(struct pci_dev *dport, u64 type) +{ + u64 param1 = 0, param2 = 0, param4 = 0; + u32 flags; + int rc; + + if (!einj_initialized) + return -ENXIO; + + /* Only CXL error types can be specified */ + if (type & ~CXL_ERROR_MASK || (type & ACPI5_VENDOR_BIT)) + return -EINVAL; + + rc = validate_error_type(type); + if (rc) + return rc; + + rc = cxl_dport_get_sbdf(dport, ¶m4); + if (rc) + return rc; + + flags = 0x4; + + return einj_error_inject(type, flags, param1, param2, 0, param4); +} +EXPORT_SYMBOL_NS_GPL(einj_cxl_inject_error, CXL); + +static int error_type_get(void *data, u64 *val) +{ + *val = error_type; + + return 0; +} + +static int error_type_set(void *data, u64 val) +{ + int rc; + + /* CXL error types have to be injected from cxl debugfs */ + if (val & CXL_ERROR_MASK && !(val & ACPI5_VENDOR_BIT)) + return -EINVAL; + + rc = validate_error_type(val); + if (rc) + return rc; + error_type = val; return 0; diff --git a/drivers/cxl/core/port.c b/drivers/cxl/core/port.c index 38441634e4c6..4ed4a24138c3 100644 --- a/drivers/cxl/core/port.c +++ b/drivers/cxl/core/port.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include "core.h" @@ -783,6 +784,32 @@ static int cxl_dport_setup_regs(struct device *host, struct cxl_dport *dport, return rc; } +DEFINE_SHOW_ATTRIBUTE(cxl_einj_available_error_type); + +static int cxl_einj_inject(void *data, u64 type) +{ + struct cxl_dport *dport = data; + + if (dport->rch) + return cxl_einj_inject_rch_error(dport->rcrb.base, type); + + if (!dev_is_pci(dport->dport_dev)) + return -EINVAL; + + return cxl_einj_inject_error(to_pci_dev(dport->dport_dev), type); +} +DEFINE_DEBUGFS_ATTRIBUTE(cxl_einj_inject_fops, NULL, cxl_einj_inject, "%llx\n"); + +static void cxl_debugfs_create_dport_dir(struct cxl_dport *dport) +{ + struct dentry *dir; + + dir = cxl_debugfs_create_dir(dev_name(dport->dport_dev)); + + debugfs_create_file("einj_inject", 0200, dir, dport, + &cxl_einj_inject_fops); +} + static struct cxl_port *__devm_cxl_add_port(struct device *host, struct device *uport_dev, resource_size_t component_reg_phys, @@ -1136,6 +1163,8 @@ struct cxl_dport *devm_cxl_add_dport(struct cxl_port *port, } else { dev_dbg(dport_dev, "dport added to %s\n", dev_name(&port->dev)); + + cxl_debugfs_create_dport_dir(dport); } return dport; @@ -1170,6 +1199,8 @@ struct cxl_dport *devm_cxl_add_rch_dport(struct cxl_port *port, } else { dev_dbg(dport_dev, "RCH dport added to %s\n", dev_name(&port->dev)); + + cxl_debugfs_create_dport_dir(dport); } return dport; @@ -2109,6 +2140,8 @@ static __init int cxl_core_init(void) int rc; cxl_debugfs = debugfs_create_dir("cxl", NULL); + debugfs_create_file("einj_types", 0400, cxl_debugfs, NULL, + &cxl_einj_available_error_type_fops); cxl_mbox_init(); diff --git a/drivers/cxl/einj.h b/drivers/cxl/einj.h new file mode 100644 index 000000000000..b913763c3238 --- /dev/null +++ b/drivers/cxl/einj.h @@ -0,0 +1,58 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * CXL protocol Error INJection support. + * + * Copyright (c) 2023 Advanced Micro Devices, Inc. + * All Rights Reserved. + * + * Author: Ben Cheatham + */ +#ifndef CXL_EINJ_H +#define CXL_EINJ_H +#include + +int einj_cxl_available_error_type_show(struct seq_file *m, void *v); +int einj_cxl_inject_error(struct pci_dev *dport_dev, u64 type); +int einj_cxl_inject_rch_error(u64 rcrb, u64 type); + +#if IS_ENABLED(CONFIG_CXL_EINJ) +static inline int cxl_einj_available_error_type_show(struct seq_file *m, + void *v) +{ + return einj_cxl_available_error_type_show(m, v); +} + +static inline int cxl_einj_inject_error(struct pci_dev *dport_dev, u64 type) +{ + return einj_cxl_inject_error(dport_dev, type); +} + +static inline int cxl_einj_inject_rch_error(u64 rcrb, u64 type) +{ + return einj_cxl_inject_rch_error(rcrb, type); +} + +#else +static inline int cxl_einj_available_error_type_show(struct seq_file *m, + void *v) +{ + return -ENXIO; +} + +static inline int cxl_einj_type_show(struct seq_file *m, void *data) +{ + return -ENXIO; +} + +static inline int cxl_einj_inject_error(struct pci_dev *dport_dev, u64 type) +{ + return -ENXIO; +} + +static inline int cxl_einj_inject_rch_error(u64 rcrb, u64 type) +{ + return -ENXIO; +} +#endif + +#endif From patchwork Wed Dec 13 22:37:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ben Cheatham X-Patchwork-Id: 13491987 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="Goi6OXqh" Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2051.outbound.protection.outlook.com [40.107.244.51]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A98E5B7; Wed, 13 Dec 2023 14:38:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ut2m2+jliYs+E4X1lMR+R6OGuuelyVLs4trEwXjFuto82F61+DKN6znztAUtB5y2Y3ONWnfyDTWVLXSIZWdk2bDQu2OpL8rv67FpWn9cAefvu4EQhZjM8ogt47+daI4UKo89GkeXLUIe3GBU5lQHrunrG098NPOe78LYFWEOA4rV6UGuRyYOeZmsgsRU5CyHEew7Fvl2hHEilWqqjs8giGRF9GGgdNucyfGRe4ll97hLFoI2m05/HVjmA6fneXzujgZWL/DJ7iwDy8jgOTrUVQ6Y3AGj2YMURtlr9i/wCEEqFcz7yzZQFR/HUm1KbGJuvJtG2pqlmocLWCfy/EhRlA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=bl5gqUYgur5j+LfplT5R3LCfXzBWLbZ6qrs6WIFO54s=; b=W6ZlfTzKcYt2bE5TrZf1FEtwJZPT9t03rbI71r1o3+1Fb+YswR2aHtNj+YKGiN/k7b5N1213f/B7/fe6kDpDMXJshK7BgaU4oZjOxLvcI62g0ALvRUZ2wzsblt5v8wlfk8Q2VfztEkBZljEnXtzhQyDQH6i3N1StyEgaDM28k+/l7JZp/hA6ujDbWk9TeUxBJatBy+CQYqWfZc5cF06AMZO5GBj0Gob9mNj8626ku6jFJWz69illfDLyjaVJAjNww0ALsh6bD1gdQNGO76ZQaMzOHdOD31fFiZaHWhDVRhAnhIvbAq6w9kbPnShHBVQkvm3eNZEMwXWHV3f5a82yqg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=intel.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bl5gqUYgur5j+LfplT5R3LCfXzBWLbZ6qrs6WIFO54s=; b=Goi6OXqhVEv5T6qs5SDjWo7FXYQeWymVKrvtXBbbpWVZ0TyiKEzauZZuD+vHKuhIMNYdlO0XG6ivlVZRJT/G78KKzZtu+AFDe1Yy6qZazDmPYJ8oeK3iA/4YkloG3S6pfpcWLyi04yaaRwVGRMTFWMtCsomxW8ei2AzkLon8btc= Received: from BN9PR03CA0851.namprd03.prod.outlook.com (2603:10b6:408:13d::16) by DM4PR12MB6639.namprd12.prod.outlook.com (2603:10b6:8:be::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.26; Wed, 13 Dec 2023 22:38:24 +0000 Received: from SN1PEPF0002BA4F.namprd03.prod.outlook.com (2603:10b6:408:13d:cafe::2e) by BN9PR03CA0851.outlook.office365.com (2603:10b6:408:13d::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.26 via Frontend Transport; Wed, 13 Dec 2023 22:38:24 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by SN1PEPF0002BA4F.mail.protection.outlook.com (10.167.242.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7091.26 via Frontend Transport; Wed, 13 Dec 2023 22:38:24 +0000 Received: from bcheatha-HP-EliteBook-845-G8-Notebook-PC.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Wed, 13 Dec 2023 16:38:23 -0600 From: Ben Cheatham To: , , , , , , , CC: , , Subject: [PATCH v8 5/5] EINJ, Documentation: Update EINJ kernel doc Date: Wed, 13 Dec 2023 16:37:02 -0600 Message-ID: <20231213223702.543419-6-Benjamin.Cheatham@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231213223702.543419-1-Benjamin.Cheatham@amd.com> References: <20231213223702.543419-1-Benjamin.Cheatham@amd.com> Precedence: bulk X-Mailing-List: linux-cxl@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF0002BA4F:EE_|DM4PR12MB6639:EE_ X-MS-Office365-Filtering-Correlation-Id: bdd85590-cc1c-42c9-3850-08dbfc2c37b2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ExhzuDPf9IdGYYB0IXn6g8K6zbt6LQPDvBgdKKrbDtzk8XEOWjkK1U4RED9A8q93g0z7MWfdZcyEWZH6S9syyECp2iZzYoYO5sn5dHmbuBFhOBo5qdM8YZ03r9R/iKI4bQxlJvK1VjYO7/6BsqqEnsaND3ZrP0PVierhliYcSox3PLsLBr5tzW8ICAVnwo+jOTY+C9hvjKf3j8Yo7DcWaCnzWP5lwPUys2xP/ZN2P4mJpEdo/hkB3Z1XpJ2AqwDdO6hHd4Z/OtAASF1uIoRuAgF5Ex8TGQA/hXO4hiwiwi9i1XA0qF13cRR2LMI/lhqzn5T157xLsYSHubDROs7XQbtewz+u4k5tq8m4xiDnE2nx3hVn0T9xFlYHpVwuSDuW6YzsEMDIog0k7QKSeOb4AinSPjg6fk6CFM7I/hO/0xemzQKD+XI2JCJFlJhzWTDJOKffAEDGCDOM+wI/s/rZjfqh+4koUtRh/ievyQqnGdyXoaZLxdSREixXtP8z4JuHpNtG4J3avIvK46OGi+Dk3rdWK8ixNRCQgw2NGrVLleed1f+TIKuLiPbq6yKkK5Lrn6s3DD/y9KgMJh2eCKQ+HiboTSIQ0jYAXge9EzSKIcXXM6NOwlkZ194fssFdVGI2bK86+ViG4fKEWLww1lZueDc+do2eu8SnFWY5Jr+7mMdvSnIHFBSrvVbMjZH127lDI4cxhCSRrDQiXVpSFqy4zHWlfcVTf+Mca4Y/y6wXFHsuYCVcMXWNfHgcreCSiR/5JSflT7x188tVM4JYtJpA1BaswWRib1AnNX9h884UH2o= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(376002)(346002)(396003)(136003)(39860400002)(230922051799003)(64100799003)(186009)(82310400011)(451199024)(1800799012)(36840700001)(40470700004)(46966006)(40480700001)(40460700003)(70586007)(70206006)(54906003)(82740400003)(81166007)(356005)(36756003)(86362001)(110136005)(36860700001)(47076005)(83380400001)(426003)(26005)(336012)(16526019)(1076003)(2616005)(19627235002)(15650500001)(2906002)(316002)(478600001)(6666004)(4326008)(5660300002)(7696005)(8936002)(8676002)(41300700001)(7416002)(2101003)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Dec 2023 22:38:24.5619 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: bdd85590-cc1c-42c9-3850-08dbfc2c37b2 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF0002BA4F.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6639 Update EINJ kernel document to include how to inject CXL protocol error types, build the kernel to include CXL error types, and give an example injection. Reviewed-by: Jonathan Cameron Signed-off-by: Ben Cheatham --- .../firmware-guide/acpi/apei/einj.rst | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Documentation/firmware-guide/acpi/apei/einj.rst b/Documentation/firmware-guide/acpi/apei/einj.rst index d6b61d22f525..a9d3f6926cae 100644 --- a/Documentation/firmware-guide/acpi/apei/einj.rst +++ b/Documentation/firmware-guide/acpi/apei/einj.rst @@ -181,6 +181,25 @@ You should see something like this in dmesg:: [22715.834759] EDAC sbridge MC3: PROCESSOR 0:306e7 TIME 1422553404 SOCKET 0 APIC 0 [22716.616173] EDAC MC3: 1 CE memory read error on CPU_SrcID#0_Channel#0_DIMM#0 (channel:0 slot:0 page:0x12345 offset:0x0 grain:32 syndrome:0x0 - area:DRAM err_code:0001:0090 socket:0 channel_mask:1 rank:0) +CXL error types are supported from ACPI 6.5 onwards. These error types +are not available in the legacy interface at /sys/kernel/debug/apei/einj, +and are instead at /sys/kernel/debug/cxl/. There is a file under debug/cxl +called "einj_type" that is analagous to available_error_type under debug/cxl. +There is also a "einj_inject" file in each $dport_dev directory under debug/cxl +that will inject a given error into the dport represented by $dport_dev. +For example, to inject a CXL.mem protocol correctable error into +$dport_dev=pci0000:0c:: + + # cd /sys/kernel/debug/cxl/ + # cat einj_type # See which error can be injected + 0x00008000 CXL.mem Protocol Correctable + 0x00010000 CXL.mem Protocol Uncorrectable non-fatal + 0x00020000 CXL.mem Protocol Uncorrectable fatal + # cd pci0000:0c # Navigate to dport to inject into + # echo 0x8000 > einj_inject # Inject error + +To use CXL error types, ``CONFIG_CXL_EINJ`` will need to be enabled. + Special notes for injection into SGX enclaves: There may be a separate BIOS setup option to enable SGX injection.