From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM02-DM3-obe.outbound.protection.outlook.com (NAM02-DM3-obe.outbound.protection.outlook.com [40.107.95.61]) by mx.groups.io with SMTP id smtpd.web08.4639.1668513864177735908 for ; Tue, 15 Nov 2022 04:04:24 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@amd.com header.s=selector1 header.b=EAxRNrJV; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: amd.com, ip: 40.107.95.61, mailfrom: abdullateef.attar@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ONZQ03QIBAeAYm8uF88xh5dUXz45fafwOObXNKccGG/RRDep4fhNJNXnc1N/LmIuITB8V4Ad0KjyvjX/j48+6Ya9Op48txKxNbq4y4Z9WvUQpZLhYQ2JWAQi1Q50RJdh0Bq3vW1ZnZ2ITD2Zpnux2hMKHem/jtFIIanoFgtP9ORFw2RMZ/cwtaJKLWo2lufvs/qtTdp16z4YY9Qi//jcSck+K3PZQlqeWb34Wlx//D82kmKiDH2TdimeYxAu/hz19gN20CW22Y2JKP0CNCnm0zGoDgasfNf6WQYbqDYeNmjnHIG6HMsu7EwHH0YFJyFwaLN1DHCBcQpFZaPXxlMa2A== 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=4IJwQtkOY2Xy0m/jrQMGh5jxNV0exlQF42yTRU7Qt6A=; b=SkFS5cPmmVffFHsACUYUU6fjmJyh+ePY0Z4JSFnkHrhTSOGPTauraCcqo9qd08YnjVQdXU9ONQTirD8XYXlwdPzUG6IpsnG4hOseVYpTJ94AQFI9XQCvrPEXHq1ALe+BeNXiCi0Iv0aOjttB+L1Ek4tP4kWXv002/2pd4u0WJKPkrcZFuebyxI9Lc8FxTLTTzJd2XAcS1C8PTUetwu54O4ifUjmaAhRVDQzs690P2TTnDeq27rXqfoNLGAq/U/UIs/T1jTegZ12X9btrLNi4IcFSXn1ti/ogV6zcI+eQ4vBnLXH/g6NRmbY6cwYpQ8XILIAmiF9LKvsFOGucyPx1Cw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=edk2.groups.io 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 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=4IJwQtkOY2Xy0m/jrQMGh5jxNV0exlQF42yTRU7Qt6A=; b=EAxRNrJVlY+cgwauFq3FfDruxQXuN3A2qYMBRGQD0wQZFe0aTrdQefGJqvhD8lOZ4CzUBVseGKGxqbnc6Gz4Y18vg4nwNz2O0iihimrrvjVsXR3nEskacRmd8Ztmm6kTdAF8YFu1x8u7wDNX4f06utjJdAuWK2cn9Gkhw1k/B70= Received: from MN2PR04CA0013.namprd04.prod.outlook.com (2603:10b6:208:d4::26) by MN2PR12MB4077.namprd12.prod.outlook.com (2603:10b6:208:1da::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.18; Tue, 15 Nov 2022 12:04:21 +0000 Received: from BL02EPF0000C402.namprd05.prod.outlook.com (2603:10b6:208:d4:cafe::19) by MN2PR04CA0013.outlook.office365.com (2603:10b6:208:d4::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.17 via Frontend Transport; Tue, 15 Nov 2022 12:04:21 +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 BL02EPF0000C402.mail.protection.outlook.com (10.167.241.4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5813.11 via Frontend Transport; Tue, 15 Nov 2022 12:04:21 +0000 Received: from SATLEXMB03.amd.com (10.181.40.144) 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.2375.34; Tue, 15 Nov 2022 06:04:18 -0600 Received: from BLR-PF2HH7H7.amd.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2375.34 via Frontend Transport; Tue, 15 Nov 2022 06:04:17 -0600 From: Abdul Lateef Attar To: CC: Eric Dong , Liming Gao Subject: [PATCH 1/2] BoardModulePkg: Copy device path before processing Date: Tue, 15 Nov 2022 17:34:12 +0530 Message-ID: X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Return-Path: AbdulLateef.Attar@amd.com X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF0000C402:EE_|MN2PR12MB4077:EE_ X-MS-Office365-Filtering-Correlation-Id: a72ebd9f-72e9-40de-c2aa-08dac70187c6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0mxHhf75cJkcU3fyRlIE4GmM57cusYgv9A3Q0WlkQokSqFJ1dtlOk1DfvsZZcl+npOnr8Ubq4RQfICK8sJ//qhiggdTFA74VFFIRwSAUlFLGX6vaURFmfcAJv14gLcqDNV2RPXLJaeb09PxV5d3XLyhoCVAKr/qbdx3M1ME74Wng5tZw15cjmUEiUIaEWrLRs8ccUmcyOZFDFdHrgYOZU5vc/OZPSOkb2jSc2u8OZKOpt4BDeTyZOUD8ViYlE8543L/lUQ9n1WZwt/sCBjbxZ+5BWtQZVG7PX8kT+aalltzu6Wz0YOrdGcne42E5yDg1U99wpeivoZHiMuRWpmOCoWrHeLXorIXzEvHqDPrQgXArCFsWLbIiNzdMbaiozzYxUNWvo4ekUM4gY8aWSpUzqr/wE6l9Bm9FNKwzyHe2dkpFGiT2Mt55lk6APGrIWwabKkJMtvPxCeOsUNYvKHCtPVNKTXwf3BLgllCyKb45vWOus/fKqiiMZuNuST1ow4wsdL1l12ccD28be3mVqfXy5mS4LnynY6vXky7d10hHBiKBbnYtUu1I496jEZitMz8gqvqSNi0/+0LOM2U7h2NhXEQb48rqXqwM+bX9Ijp1GoDKvWAAtnyPcgZjn6vWGc3ZV8/B/NlXcsjLr+xZny3hszy0KyCHtzkFdVScO5CwLbLzFMwmn+OTf8L/IFd0XW2aBIalLkUIA2YZtRbcpZ7zhLk34Yn/U5Nm5bUEdB7buYcOXE77ercgEcakJLJy5kB7QQmsnhX9lPk+brjhmy+wmkCk9CcAKGlW8w8fHutNS4g= 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:(13230022)(4636009)(376002)(39860400002)(396003)(346002)(136003)(451199015)(40470700004)(46966006)(36840700001)(26005)(82740400003)(316002)(356005)(86362001)(426003)(40460700003)(40480700001)(47076005)(336012)(83380400001)(36860700001)(2906002)(70206006)(70586007)(41300700001)(8936002)(4326008)(36756003)(8676002)(5660300002)(186003)(2616005)(478600001)(82310400005)(54906003)(6916009)(6666004)(81166007)(7696005)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2022 12:04:21.2722 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a72ebd9f-72e9-40de-c2aa-08dac70187c6 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: BL02EPF0000C402.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4077 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain From: Abdul Lateef Attar GCC compiler puts the DevicePath PCDs to the read-only section. During boot if try to process the device path after PtrGetPtr it throws a page fault exception. Hence making a local copy using DuplicateDevicePath() to avoid the page fault exception. Cc: Eric Dong Cc: Liming Gao Signed-off-by: Abdul Lateef Attar --- .../Library/BoardBdsHookLib/BoardBdsHookLib.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/Platform/Intel/BoardModulePkg/Library/BoardBdsHookLib/BoardBds= HookLib.c b/Platform/Intel/BoardModulePkg/Library/BoardBdsHookLib/BoardBdsH= ookLib.c index 0bcee7c9a4ba..8700118d255a 100644 --- a/Platform/Intel/BoardModulePkg/Library/BoardBdsHookLib/BoardBdsHookLib= .c +++ b/Platform/Intel/BoardModulePkg/Library/BoardBdsHookLib/BoardBdsHookLib= .c @@ -3,6 +3,7 @@ implementation instance of the BDS hook library=0D =0D Copyright (c) 2019, Intel Corporation. All rights reserved.
=0D + Copyright (C) 2022 Advanced Micro Devices, Inc. All rights reserved.
= =0D SPDX-License-Identifier: BSD-2-Clause-Patent=0D =0D **/=0D @@ -131,7 +132,7 @@ IsTrustedConsole ( =0D switch (ConsoleType) {=0D case ConIn:=0D - TrustedConsoleDevicepath =3D PcdGetPtr (PcdTrustedConsoleInputDevice= Path);=0D + TrustedConsoleDevicepath =3D DuplicateDevicePath (PcdGetPtr (PcdTrus= tedConsoleInputDevicePath));=0D break;=0D case ConOut:=0D //=0D @@ -147,7 +148,7 @@ IsTrustedConsole ( TempDevicePath =3D NextDevicePathNode (TempDevicePath);=0D }=0D =0D - TrustedConsoleDevicepath =3D PcdGetPtr (PcdTrustedConsoleOutputDevic= ePath);=0D + TrustedConsoleDevicepath =3D DuplicateDevicePath (PcdGetPtr (PcdTrus= tedConsoleOutputDevicePath));=0D break;=0D default:=0D ASSERT (FALSE);=0D @@ -171,7 +172,9 @@ IsTrustedConsole ( } while (TempDevicePath !=3D NULL);=0D =0D FreePool (ConsoleDevice);=0D -=0D + if (TrustedConsoleDevicepath !=3D NULL) {=0D + FreePool (TrustedConsoleDevicepath);=0D + }=0D return FALSE;=0D }=0D =0D @@ -624,7 +627,7 @@ ConnectTrustedStorage ( EFI_STATUS Status;=0D EFI_HANDLE DeviceHandle;=0D =0D - TrustedStorageDevicepath =3D PcdGetPtr (PcdTrustedStorageDevicePath);=0D + TrustedStorageDevicepath =3D DuplicateDevicePath (PcdGetPtr (PcdTrustedS= torageDevicePath));=0D DumpDevicePath (L"TrustedStorage", TrustedStorageDevicepath);=0D =0D TempDevicePath =3D TrustedStorageDevicepath;=0D @@ -649,6 +652,9 @@ ConnectTrustedStorage ( =0D FreePool (Instance);=0D } while (TempDevicePath !=3D NULL);=0D + if (TrustedStorageDevicepath !=3D NULL) {=0D + FreePool (TrustedStorageDevicepath);=0D + }=0D }=0D =0D =0D @@ -1031,7 +1037,7 @@ AddConsoleVariable ( EFI_HANDLE GraphicsControllerHandle;=0D EFI_DEVICE_PATH *GopDevicePath;=0D =0D - TempDevicePath =3D ConsoleDevicePath;=0D + TempDevicePath =3D DuplicateDevicePath (ConsoleDevicePath);=0D do {=0D Instance =3D GetNextDevicePathInstance (&TempDevicePath, &Size);=0D if (Instance =3D=3D NULL) {=0D @@ -1074,6 +1080,9 @@ AddConsoleVariable ( =0D FreePool (Instance);=0D } while (TempDevicePath !=3D NULL);=0D + if (TempDevicePath !=3D NULL) {=0D + FreePool (TempDevicePath);=0D + }=0D }=0D =0D =0D --=20 2.25.1