From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (NAM02-BN1-obe.outbound.protection.outlook.com [40.107.212.48]) by mx.groups.io with SMTP id smtpd.web11.36737.1671490420389862549 for ; Mon, 19 Dec 2022 14:53:40 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@amd.com header.s=selector1 header.b=UcHxDxH2; 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.212.48, mailfrom: jiangang.he@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FIhu7MLu0EE5bsAneKP6+5CCf1joyUQOSX9TAFHzY3xMqTdgChW57m+BYQ93tVywy1cDiVM1xGxtW4eaveTk57fdp3Wevtvb/FeHGh6HRUf/4Eq6pWn5CEzuVX+Owd7A2S7yLKEAsEi50TkcS7f1nOxHPiRO1iYyA3BIe2Wc6Atyhg0uwUFDULgEDgdV6iCulu6+o6kLXpjfbZ9RkY7miDHcBfReyIjTFKz/Qj9cjgmJzTIeW493Yps/VU1FOXO5X++uHffIka507YD+3DRbIVB0PU0ALZwmr8zGvrFT8queZryt04RZYnxEbQwZp+HuMqOTCWKtB6kSOvPyQYA5uw== 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=Xs8iu/eduACxn/dCgJRcGrA7/0iYayLdT7M1oIUtsbc=; b=Sn/nl/Si7A1UtTEOg4K+185z7uComN8MpWuI/UmtXZfAkNzqQXsrRDO2z1bNnUquvXn6CC8Y9SXa1o0Q25qWs9TEWiIUkdIxNPqbCe9rSn3Kls6Ela1bajodxkQj46fNiSXUTHEPwY5frPqVuGw3q8uMJoVZ/BmDc21r0HTCAgG4eQh3cuHVwIlPVvMYr47IQYx9UjqN4OexAN/7qlYveDEJYrnjvnC87MrHKxXeivYNXvSS5YqO2eGMNZIpNYD4FaUl0llx7pKy3tQYoFlhJCzotoDDH+lpskRI3Ca29mSOt5NxI7pi/8F/4WtpURd9/ybP2kS5CeSScsM4i6cPcA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; 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=Xs8iu/eduACxn/dCgJRcGrA7/0iYayLdT7M1oIUtsbc=; b=UcHxDxH2g0eljnX9/3gTbEm9vIc/53SwqRobPzZCxHEmCmNly2BKE5D51uh6oIMk90zMrICK0hvuTFHVNQi/PoFh3h5eXiPu9aN+g/P2zdZXvQEVxFRRHhvjSq0yFKZ3EbS13EZh7DlbW6scZu0Dd2gTJC7K++VBltPYgV6Zt/I= Received: from MN2PR12MB3421.namprd12.prod.outlook.com (2603:10b6:208:cd::24) by DM6PR12MB4313.namprd12.prod.outlook.com (2603:10b6:5:21e::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5924.16; Mon, 19 Dec 2022 22:53:37 +0000 Received: from MN2PR12MB3421.namprd12.prod.outlook.com ([fe80::528d:f20:ddc3:2bd9]) by MN2PR12MB3421.namprd12.prod.outlook.com ([fe80::528d:f20:ddc3:2bd9%5]) with mapi id 15.20.5924.016; Mon, 19 Dec 2022 22:53:37 +0000 From: "He, Jiangang" To: "Wu, Hao A" , "Chang, Abner" , "devel@edk2.groups.io" CC: "Lin, Kuei-Hung (Timothy)" , "Ni, Ray" , "Zeng, Star" , "Sun, Zhikai" , "Kirkendall, Garrett" Subject: Re: [PATCH V2] MdeModulePkg/XhciPei: Unlinked XhciPei memory block Thread-Topic: [PATCH V2] MdeModulePkg/XhciPei: Unlinked XhciPei memory block Thread-Index: AQHZDKno0DYnXuJIl0m31zK+lceR8a5pmfcAgASf6dCAAPSyIIAFoY+AgAEJJdA= Date: Mon, 19 Dec 2022 22:53:37 +0000 Message-ID: References: <20221210151240.1548-1-abner.chang@amd.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ActionId=13d80729-4da6-44d7-bcc8-e332e37b7689;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ContentBits=0;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Enabled=true;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Method=Standard;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Name=General;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SetDate=2022-12-15T02:11:41Z;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN2PR12MB3421:EE_|DM6PR12MB4313:EE_ x-ms-office365-filtering-correlation-id: daf53e02-7da1-4d95-9b07-08dae213dd71 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 5cN6gm8pJrEAbPeqg+ZJ9uhv3/Zs0RuliHY/Ywo/AyU9hswUlGCr9HQ90caLLKZDFFv0kd34DbxJOr+Lqqxh9w7D3Si2rm6wY8z7vRjiT4d2wh7nXPooaZo8SormbenWRTNG0fwZ1oYYd+ebngQhYaYwNRxU27foEQS2cjz00kZFvryt0NT9EQwxiQw0aln2cjSEhJ1F1wTWhJSMBmxCioGpRxATRBfiO0/UvKVAF+LVu2kilrwKyIu2Fe32jfYHMa+rKlFd64WVgtgV8yg1z+qspTZbhdFwT+gI9DgM0EKUMND71JYu4XzNC2EkJ2r2mLqfoazyb4br0xPEwgjxN7gMP8cMKrYrJHhgKvlXzKah7DXBDntLd6C0MVj3Pak391aLTMIV5tSjpOsUTB2ZiGMAfpSgvDS10Hn4VgNmfHHbUbgSIHwWUVDio85iJYF1P7AprQ0/Nsgdn41SG/BWlGRE5bnA25uEvaRxzSTY0NegxEIWSGf0lohwdgfPx2C9GONFvrbKHg4VJeA4WiWcNkFvbBCXS0Z2Rtqex5LypxgiuTFg782utMaDfFNWvI8OssNWUotu025Y4Ma4KcDHI0SO40Gxxa11WHU+6zfjl1gYROpQ8bvcC5pRwzTQnjtI+vqy8vA/fWFhminuIlxqG2UpObDdL/vB1UUmrSpWtGLRG/2ZN6tpiFVJ+lIyOJheJvQBwUUSckPEZYWkBvIB2w== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR12MB3421.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(396003)(136003)(366004)(346002)(376002)(39860400002)(451199015)(71200400001)(38100700002)(122000001)(7696005)(6506007)(53546011)(45080400002)(9686003)(186003)(33656002)(478600001)(966005)(83380400001)(52536014)(55016003)(41300700001)(38070700005)(316002)(19627235002)(110136005)(8936002)(2906002)(66946007)(76116006)(86362001)(4326008)(66476007)(5660300002)(8676002)(66556008)(66446008)(64756008)(54906003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?ZsVYC6IX9fumzCGtgRYKMZhZu7OW/E8w4iAyRjL4eY+AYcgH9RCGEKlPZAZV?= =?us-ascii?Q?xEnXImzW5IvxFUBzhBtfkAZ6A0v7Mz+rkgz8fBkrNf/t2gFJEiFDWeJv30Iw?= =?us-ascii?Q?lfXS42F4tZJrnLZheHkzQSUYrzzZGF9MDsTsPJ1N6Jn+3Ltv2M8LIh3lJv5J?= =?us-ascii?Q?qeSsbQp4Ujhp/h7Wu7Rm0B6UApI1+BSMr2QjzocWEYAFgm7RP2mJYfICnajr?= =?us-ascii?Q?sCRyeD/4rc8PvKigAB1iKoBNqUCoWKoNdPBfxlWRAFELPg23O3c/Rfm7FAj7?= =?us-ascii?Q?s0h6KxJHcKNaEMYeVOKxJdLvTFi5tptXX+w9t3VNvxItm1w9PbbpOpORk1bA?= =?us-ascii?Q?sN2sQyEsfN3gt2XtkM2M4FGIufuGenj2qQNZxX55lPpZQmPevgn9c1tzQp00?= =?us-ascii?Q?bh8oP35g/rcDZEcdPbiZG4nQxtP+fZC8uWXJzpC8mxWgi4LT2i+KnvqrvKKE?= =?us-ascii?Q?Nj3tPIIJkjBlInuV6olCmPEWnHbQwWyfGXStBxJONNPbiR9FROMyO0drDA0L?= =?us-ascii?Q?6ge2MnSoM7nmhnRIApFQjIgERqUM7SKKUqG1KvY2bNV1kEAWa+ErdjF+cLGt?= =?us-ascii?Q?vHL0bazl/M0WUF583tud3YbwVnu5om7Q6gFToakkZwlwAqDIA1OipkV2n/bB?= =?us-ascii?Q?8rQFIII87YXVnO2egZh+jXK2r0hQ+ULnEnPMdsWaytFQuSKnT6lIzzagtk0c?= =?us-ascii?Q?IDehEh6a1HhA4aa6flRXXfaIDWCaOKuomLgBoN/VObxoAdJaLWVgcs+6R3R2?= =?us-ascii?Q?YJTiqvvUFNOFuGBb1XLhcY/y5gPElmxn4bxrkAd0F6VltmuFM8Ix1o2xm1B+?= =?us-ascii?Q?r05xzAStsYGNMCIyAT+Z8GkyKv4E9/9QwtdZ9H+aIegbaLyICuPxFREjskE9?= =?us-ascii?Q?BqBztyq2Y/CGDImJ6BHkSB3LBCO2DQTXntmENeHfVcZHRmmFf4bIYq5vnjaS?= =?us-ascii?Q?7CBZGcECgnT8p024/Gg2FjjMCV6wFilbmVMuafIGfKbmaj/IhOqI0TBD0mA0?= =?us-ascii?Q?QOYZMbH98rNtD/WxCRemh6M3FnDc0gKbJ9dzloFVyvwWb1nOmQ/mc1byHS0f?= =?us-ascii?Q?qMzr2r5+Au+bHPMAMuS+nq9qpRXH3kd9nndYtsvrhHDM2jFD6irApOfjV5yz?= =?us-ascii?Q?iE3uv3V2Il7KC08rgIKFbWb5J/E95je2VtHrPA94RVjQpiXwlQal/yJI759L?= =?us-ascii?Q?GLRfak3Edffd9BeqPaCNFBQLV8SMkwrkp9c3APGTzGbou3h226Fha+w95oUS?= =?us-ascii?Q?ClSefG+ZhqmUCCb1GvAf9fCBUoLJBSHlNNq0Bi1b2w185SP6GOCf6mzTEIpD?= =?us-ascii?Q?2Nq5ppFM5uhOrt+ocNjHjXYMZG4lDA/r8fuQ5b+H7RRvme+NV4rDQ0DfJ0Qq?= =?us-ascii?Q?ZYGrGa9iFzhkjNEq8mXthtWTMVSPyQiCqRC2Xmdict93s1Mno4uvddLlxkay?= =?us-ascii?Q?DCVK9eHM64oWYCmFsZzpEik118HXd02gmqifqDgxT6fgfhMsTHvzGXsODCFi?= =?us-ascii?Q?ePtGNLrJdfETUPgrLoDuUW5cdn1+EzbsoXx7wyE6kC2dp9Z5KaFs7WUYbQcf?= =?us-ascii?Q?AbFI/Q8Jy+2BRAJd0YC5qf/sT6sDdK2ixna9SJhxlgVNWhcCHF/dBKuN3nPq?= =?us-ascii?Q?yMiIoMX57T9TM6FQA3NvRRAAVgkiPykvplvsa2oiceSk?= MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3421.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: daf53e02-7da1-4d95-9b07-08dae213dd71 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Dec 2022 22:53:37.3500 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: pDO433FZpy7i+ZV+dCqwLV4k1jGjvtIaLI9+GUQFlRpeuI0OTN397CuQ4O7vf5HuBZtJakAwAlWf1M0lVmIvQQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4313 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable [AMD Official Use Only - General] UsbHcFreeMemBlock()->IoMmuFreeBuffer()->mIoMmu->FreeBuffer(), which may end= up calling PeiFreePages() depending on gEdkiiIoMmuPpiGuid implementation. = Surely both will work since UsbHcFreeMemPool() can't be interrupted by any = service call to use the memory just freed. Just for good coding practice re= ason, I pick the one aligning with XhciDxe. Thanks, Jiangang -----Original Message----- From: Wu, Hao A Sent: Monday, December 19, 2022 12:40 AM To: He, Jiangang ; Chang, Abner ;= devel@edk2.groups.io Cc: Lin, Kuei-Hung (Timothy) ; Ni, Ray ; Zeng, Star ; Sun, Zhikai = ; Kirkendall, Garrett Subject: RE: [PATCH V2] MdeModulePkg/XhciPei: Unlinked XhciPei memory block [AMD Official Use Only - General] Caution: This message originated from an External Source. Use proper cautio= n when opening attachments, clicking links, or responding. Hello, My take is that unlike in DXE, the UsbHcFreeMemBlock() implementation in PE= I phase does not perform freeing the memory. So I think both the solution: * Provided at https://nam11.safelinks.protection.outlook.com/?url=3Dhttps%3= A%2F%2Fedk2.groups.io%2Fg%2Fdevel%2Ftopic%2F92833071%2392165&data=3D05%7C01= %7CJiangang.He%40amd.com%7C528424aa303f4a2c9b1808dae18be036%7C3dd8961fe4884= e608e11a82d994e183d%7C0%7C0%7C638070288126779782%7CUnknown%7CTWFpbGZsb3d8ey= JWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%= 7C%7C&sdata=3DuJMNyYXMU22UZNjrKtDetyD2BqrvkualuorPZHAV3wg%3D&reserved=3D0, = which aligns with EhciPei * Mentioned at the end of your previous reply, which aligns with XhciDxe sh= ould work fine. I will leave it to you for the final decision. Best Regards, Hao Wu > -----Original Message----- > From: He, Jiangang > Sent: Friday, December 16, 2022 12:48 AM > To: Chang, Abner ; Wu, Hao A > ; devel@edk2.groups.io > Cc: Lin, Kuei-Hung (Timothy) ; Ni, Ray > ; Zeng, Star ; Sun, Zhikai > ; Kirkendall, Garrett > > Subject: RE: [PATCH V2] MdeModulePkg/XhciPei: Unlinked XhciPei memory > block > > [AMD Official Use Only - General] > > Yes, it is the same issue discussed in > https://nam11.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fedk2 > .groups.io%2Fg%2Fdevel%2Ftopic%2F92833071%2392165&data=3D05%7C01%7CJiang > ang.He%40amd.com%7C528424aa303f4a2c9b1808dae18be036%7C3dd8961fe4884e60 > 8e11a82d994e183d%7C0%7C0%7C638070288126936018%7CUnknown%7CTWFpbGZsb3d8 > eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3 > 000%7C%7C%7C&sdata=3D58j41QJxKbrQenhyZKYO4dxYj3Sat2kJejQGioZhtu4%3D&rese > rved=3D0 > > MdeModulePkg\Bus\Pci\XhciPei\UsbHcMem.c > > for (Block =3D Pool->Head->Next; Block !=3D NULL; Block =3D Pool->Head-= >Next) { > // UsbHcUnlinkMemBlock (Pool->Head, Block); > UsbHcFreeMemBlock (Pool, Block); > } > Block =3D Pool->Head->Next never change without calling > UsbHcUnlinkMemBlock (Pool->Head, Block), therefore dead loop. > > Our proposed fix came from dxe version of the equivalent file > MdeModulePkg\Bus\Pci\XhciDxe\UsbHcMem.c but swapped two routine call > order (Now I think it is incorrect as clarified below). > for (Block =3D Pool->Head->Next; Block !=3D NULL; Block =3D Pool->Head-= >Next) { > UsbHcFreeMemBlock (Pool, Block); > UsbHcUnlinkMemBlock (Pool->Head, Block); > } > > https://nam11.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fedk2.= groups.io%2Fg%2Fdevel%2Ftopic%2F92833071%2392165&data=3D05%7C01%7CJiangang.= He%40amd.com%7C528424aa303f4a2c9b1808dae18be036%7C3dd8961fe4884e608e11a82d9= 94e183d%7C0%7C0%7C638070288126936018%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLj= AwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata= =3D58j41QJxKbrQenhyZKYO4dxYj3Sat2kJejQGioZhtu4%3D&reserved=3D0 proposed fix= : > > for (Block =3D Pool->Head->Next; Block !=3D NULL; Block =3D Block ->Nex= t) { > // UsbHcUnlinkMemBlock (Pool->Head, Block); > UsbHcFreeMemBlock (Pool, Block); > } > > I think it again, both proposals have problem of reading memory > content in the buffer that has just been freed. > > for (Block =3D Pool->Head->Next; Block !=3D NULL; Block =3D Pool->Head-= >Next) { > UsbHcUnlinkMemBlock (Pool->Head, Block); > UsbHcFreeMemBlock (Pool, Block); > } > is right solution and matches dxe version of UsbHcMem.c. > > Thanks, > Jiangang > > -----Original Message----- > From: Chang, Abner > Sent: Wednesday, December 14, 2022 8:12 PM > To: Wu, Hao A ; devel@edk2.groups.io > Cc: Lin, Kuei-Hung (Timothy) ; Ni, Ray > ; Zeng, Star ; Sun, Zhikai > ; Kirkendall, Garrett > ; He, Jiangang > Subject: RE: [PATCH V2] MdeModulePkg/XhciPei: Unlinked XhciPei memory > block > > [AMD Official Use Only - General] > > Hi Jiangang, > Could you please provide the context of this patch? > > Thanks > Abner > > > -----Original Message----- > > From: Wu, Hao A > > Sent: Monday, December 12, 2022 11:27 AM > > To: Chang, Abner ; devel@edk2.groups.io > > Cc: Lin, Kuei-Hung (Timothy) ; Ni, Ray > > ; Zeng, Star ; Sun, Zhikai > > ; Kirkendall, Garrett > > > > Subject: RE: [PATCH V2] MdeModulePkg/XhciPei: Unlinked XhciPei > > memory block > > > > Caution: This message originated from an External Source. Use proper > > caution when opening attachments, clicking links, or responding. > > > > > > Sorry for a question, may I know what issue was met that leads to > > the proposed patch? > > Could you help to check if it is related with the topic discussed in > > > https://nam11.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fedk2 > > .gr > > > oups.io%2Fg%2Fdevel%2Ftopic%2F92833071%2392165&data=3D05%7C0 > 1%7 > > > Cabner.chang%40amd.com%7Ccac49c2820e741b8c48a08dadbf0cc24%7C3d > d8 > > > 961fe4884e608e11a82d994e183d%7C0%7C0%7C638064124512265992%7C > Unk > > > nown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6I > k1h > > > aWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=3Dz1Q7NRxN4GMA > %2 > > FBxYd2D7Gnkc3aTD23mRnwNF3H5wE0k%3D&reserved=3D0? Thanks in > advance. > > > > Best Regards, > > Hao Wu > > > > > -----Original Message----- > > > From: abner.chang@amd.com > > > Sent: Saturday, December 10, 2022 11:13 PM > > > To: devel@edk2.groups.io > > > Cc: Kuei-Hung.Lin@amd.com; Wu, Hao A ; Ni, Ray > > > ; Garrett Kirkendall > > > ; Abner Chang > > > Subject: [PATCH V2] MdeModulePkg/XhciPei: Unlinked XhciPei memory > > > block > > > > > > From: Abner Chang > > > > > > In V2: Add AMD copyright. > > > > > > Unlink the XhciPei memory block when it has been freed. > > > > > > Signed-off-by: Kuei-Hung Lin > > > Cc: Hao A Wu > > > Cc: Ray Ni > > > Cc: Garrett Kirkendall > > > Cc: Abner Chang > > > --- > > > MdeModulePkg/Bus/Pci/XhciPei/UsbHcMem.c | 29 > > > ++++++++++++++++++++++++- > > > 1 file changed, 28 insertions(+), 1 deletion(-) > > > > > > diff --git a/MdeModulePkg/Bus/Pci/XhciPei/UsbHcMem.c > > > b/MdeModulePkg/Bus/Pci/XhciPei/UsbHcMem.c > > > index c64b38fcfc8..39ba31b0913 100644 > > > --- a/MdeModulePkg/Bus/Pci/XhciPei/UsbHcMem.c > > > +++ b/MdeModulePkg/Bus/Pci/XhciPei/UsbHcMem.c > > > @@ -3,6 +3,7 @@ PEIM to produce gPeiUsb2HostControllerPpiGuid > based > > > on gPeiUsbControllerPpiGuid which is used to enable recovery > > > function from USB Drivers. > > > > > > Copyright (c) 2014 - 2016, Intel Corporation. All rights > > > reserved.
> > > +Copyright (C) 2022 Advanced Micro Devices, Inc. All rights > > > +reserved.
> > > > > > SPDX-License-Identifier: BSD-2-Clause-Patent > > > > > > @@ -365,6 +366,32 @@ UsbHcInitMemPool ( > > > return Pool; > > > } > > > > > > +/** > > > + Unlink the memory block from the pool's list. > > > + > > > + @param Head The block list head of the memory's pool. > > > + @param BlockToUnlink The memory block to unlink. > > > + > > > +**/ > > > +VOID > > > +UsbHcUnlinkMemBlock ( > > > + IN USBHC_MEM_BLOCK *Head, > > > + IN USBHC_MEM_BLOCK *BlockToUnlink > > > + ) > > > +{ > > > + USBHC_MEM_BLOCK *Block; > > > + > > > + ASSERT ((Head !=3D NULL) && (BlockToUnlink !=3D NULL)); > > > + > > > + for (Block =3D Head; Block !=3D NULL; Block =3D Block->Next) { > > > + if (Block->Next =3D=3D BlockToUnlink) { > > > + Block->Next =3D BlockToUnlink->Next; > > > + BlockToUnlink->Next =3D NULL; > > > + break; > > > + } > > > + } > > > +} > > > + > > > /** > > > Release the memory management pool. > > > > > > @@ -386,8 +413,8 @@ UsbHcFreeMemPool ( > > > // first block. > > > // > > > for (Block =3D Pool->Head->Next; Block !=3D NULL; Block =3D > > > Pool->Head->Next) { > > > - // UsbHcUnlinkMemBlock (Pool->Head, Block); > > > UsbHcFreeMemBlock (Pool, Block); > > > + UsbHcUnlinkMemBlock (Pool->Head, Block); > > > } > > > > > > UsbHcFreeMemBlock (Pool, Pool->Head); > > > -- > > > 2.37.1.windows.1