From nobody Tue Feb 10 23:53:02 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+105904+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+105904+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1686191350; cv=none; d=zohomail.com; s=zohoarc; b=T+q9rO2fQNYVV+ZZ7AB+JsTYx182JiC7SpnsyItMXoR77vhpESQ2EExfacJm3/bjkUmnXvQbzxK9x6wx1txAnkO5FIYpquYl67gcEAv/5EUfufVG4IvMPfR9wTD1c8oUsCEnirE2+9esTEpre7ZZpO7GEGj+H2aYOJsHUJaA44k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1686191350; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=zf++0KEzA5dofLF/Aj74nxIaiIH8RMLg+ahxtO0jUDc=; b=P2FVb9RqRF+xv27ZAKe89DHvzCvLnxwDF++w5n3eO5VgrOi4RGlz/LtOA+AYFr+BqQGUC25x46aTk2XEnOv/fpMWqaEh1dH6V7MBUrWdVeE++qOQVgJpbhWm3kw95r1ocQrwGz7sJ2akXcPKfzwzkB6diH5ienhB0s0vhB0MEs8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+105904+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1686191350357597.8491112524403; Wed, 7 Jun 2023 19:29:10 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id 3Z8rYY1788612xaiD1UxlKU2; Wed, 07 Jun 2023 19:29:10 -0700 X-Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mx.groups.io with SMTP id smtpd.web11.386.1686191344244208222 for ; Wed, 07 Jun 2023 19:29:09 -0700 X-IronPort-AV: E=McAfee;i="6600,9927,10734"; a="357184422" X-IronPort-AV: E=Sophos;i="6.00,225,1681196400"; d="scan'208";a="357184422" X-Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Jun 2023 19:29:08 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10734"; a="774877911" X-IronPort-AV: E=Sophos;i="6.00,225,1681196400"; d="scan'208";a="774877911" X-Received: from shwdeopenlab702.ccr.corp.intel.com ([10.239.55.158]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Jun 2023 19:29:07 -0700 From: "duntan" To: devel@edk2.groups.io Cc: Eric Dong , Ray Ni , Rahul Kumar , Gerd Hoffmann Subject: [edk2-devel] [Patch V5 11/14] UefiCpuPkg: Sort mSmmCpuSmramRanges in FindSmramInfo Date: Thu, 8 Jun 2023 10:27:39 +0800 Message-Id: <20230608022742.1292-12-dun.tan@intel.com> In-Reply-To: <20230608022742.1292-1-dun.tan@intel.com> References: <20230608022742.1292-1-dun.tan@intel.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,dun.tan@intel.com X-Gm-Message-State: 236Y95vrb70AVfVZMaQ5uzBlx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1686191350; bh=Ko+HpZNbxiOltit+Z2drxW3ci3eyoF76kiwdLZi8SCk=; h=Cc:Date:From:Reply-To:Subject:To; b=kYX7lNmVSdBtxxVQOuwNM76uMw3gPwX/a66uSKrEV03ZF9ZrvoKe+KVyorfC5rFZmYA dEvSWJh4iHo9HJOXqGU95cWxgYZjfWTDk5aYolGA+v6dbeQyRa0w+DrWESLbstui+gMKP mgOoKwDcIg7+HEpYUIgLx3j6+o1SLG7sPEo= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1686191351266100011 Content-Type: text/plain; charset="utf-8" Sort mSmmCpuSmramRanges after get the SMRAM info in FindSmramInfo() function. Signed-off-by: Dun Tan Cc: Eric Dong Cc: Ray Ni Cc: Rahul Kumar Cc: Gerd Hoffmann Reviewed-by: Ray Ni --- UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c | 32 ++++++++++++++++++++++++++= ++++++ 1 file changed, 32 insertions(+) diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c b/UefiCpuPkg/PiSmmC= puDxeSmm/PiSmmCpuDxeSmm.c index 2144d6ade8..2568ffd677 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c @@ -1197,6 +1197,32 @@ PiCpuSmmEntry ( return EFI_SUCCESS; } =20 +/** + Function to compare 2 EFI_SMRAM_DESCRIPTOR based on CpuStart. + + @param[in] Buffer1 pointer to Device Path poiner to compare + @param[in] Buffer2 pointer to second DevicePath pointer to co= mpare + + @retval 0 Buffer1 equal to Buffer2 + @retval <0 Buffer1 is less than Buffer2 + @retval >0 Buffer1 is greater than Buffer2 +**/ +INTN +EFIAPI +CpuSmramRangeCompare ( + IN CONST VOID *Buffer1, + IN CONST VOID *Buffer2 + ) +{ + if (((EFI_SMRAM_DESCRIPTOR *)Buffer1)->CpuStart > ((EFI_SMRAM_DESCRIPTOR= *)Buffer2)->CpuStart) { + return 1; + } else if (((EFI_SMRAM_DESCRIPTOR *)Buffer1)->CpuStart < ((EFI_SMRAM_DES= CRIPTOR *)Buffer2)->CpuStart) { + return -1; + } + + return 0; +} + /** =20 Find out SMRAM information including SMRR base and SMRR size. @@ -1218,6 +1244,7 @@ FindSmramInfo ( UINTN Index; UINT64 MaxSize; BOOLEAN Found; + EFI_SMRAM_DESCRIPTOR SmramDescriptor; =20 // // Get SMM Access Protocol @@ -1240,6 +1267,11 @@ FindSmramInfo ( =20 mSmmCpuSmramRangeCount =3D Size / sizeof (EFI_SMRAM_DESCRIPTOR); =20 + // + // Sort the mSmmCpuSmramRanges + // + QuickSort (mSmmCpuSmramRanges, mSmmCpuSmramRangeCount, sizeof (EFI_SMRAM= _DESCRIPTOR), (BASE_SORT_COMPARE)CpuSmramRangeCompare, &SmramDescriptor); + // // Find the largest SMRAM range between 1MB and 4GB that is at least 256= K - 4K in size // --=20 2.31.1.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#105904): https://edk2.groups.io/g/devel/message/105904 Mute This Topic: https://groups.io/mt/99399239/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-