From nobody Mon May 6 09:39:42 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+60940+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+60940+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=linux.alibaba.com ARC-Seal: i=1; a=rsa-sha256; t=1591696694; cv=none; d=zohomail.com; s=zohoarc; b=nMHDNVXKhjn8ViVuOXLSirrkdRL4aBpPZ7XplkXTzrm/4xATa5IvKIYg0SULDoeZ54drhXOZXjcpPzz0vN1Ssgawtket/syVLWYjTx9X1prmRfQ8+gJ2sMS5N1o+nH5mF9d5fURnoRa9DdpI1Lz7b5xThqvEB6q2SaIIySXvcFk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591696694; h=Cc:Date:From:List-Id:List-Unsubscribe:Message-ID:Reply-To:Sender:Subject:To; bh=b5kY9rOEMDPQJjYizq0YvSXA41DZxwjedYt6bA5hR5g=; b=cZVV0lkoaftgvr+24wmvSxl4rePbVFW3JrSUsX0JgPazBwCJO1/4k0tqq3q7YAyjY8omG1sr0C6TowVQ5eulTgGKlJZvENzZoV2qDmlFyiDW/SWOI0FcYJP+3WaqRVKjsqA1NlUGPRIqo9L8Ra3nwlHYLwS0EEt4jxirTmA4hZg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+60940+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1591696694423365.8671130971519; Tue, 9 Jun 2020 02:58:14 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id ZyoXYY1788612xTH24Ywbpyn; Tue, 09 Jun 2020 02:58:14 -0700 X-Received: from out30-43.freemail.mail.aliyun.com (out30-43.freemail.mail.aliyun.com [115.124.30.43]) by mx.groups.io with SMTP id smtpd.web12.5451.1591666028932969109 for ; Mon, 08 Jun 2020 18:27:09 -0700 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R161e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01f04397;MF=guoheyi@linux.alibaba.com;NM=1;PH=DS;RN=5;SR=0;TI=SMTPD_---0U.1Nwlx_1591666014; X-Received: from laochao-HP-ProDesk-680-G1-TWR.hz.ali.com(mailfrom:guoheyi@linux.alibaba.com fp:SMTPD_---0U.1Nwlx_1591666014) by smtp.aliyun-inc.com(127.0.0.1); Tue, 09 Jun 2020 09:27:05 +0800 From: "Heyi Guo" To: devel@edk2.groups.io Cc: yitian.ly@alibaba-inc.com, Heyi Guo , Leif Lindholm , Ard Biesheuvel Subject: [edk2-devel] [PATCH] ArmPkg/ArmExceptionLib: use static buffer for sp_el0 Date: Tue, 9 Jun 2020 09:26:30 +0800 Message-Id: <1591665990-15342-1-git-send-email-guoheyi@linux.alibaba.com> Precedence: Bulk List-Unsubscribe: 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,guoheyi@linux.alibaba.com X-Gm-Message-State: b7wgo1ZEkeLtUB4wKwzNiWaSx1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1591696694; bh=Ab60LXi/D5vVzmf4TClCU+rNeJiyuKykokx83mpoMEU=; h=Cc:Date:From:Reply-To:Subject:To; b=NtCJsxcEDqqSqtttzBegeQJl2XdbCNyOYxeizf/wWzc9qF87M9x4CXK89Kn8WS4+rai ZXqAEA7D8rGAikWHvHMriwWiGts3xGgZvn4IrihjRLs3TgexU8QG4jvkH/NUEH75PS0F5 scOGZKE7i4uhBjs9yT/ch5l3RTDEroMXmAo= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" The exception library is also used in DxeMain before memory services are available, and AllocatePages() will fail in this case and cause sp_el0 remains 0. Then if any exception occurs before CpuDxe driver is loaded, a recursive exception will be trigged by page translation fault for sp =3D 0 - 0x130. Use static buffer instead to fix this issue. Signed-off-by: Heyi Guo Reviewed-by: Ard Biesheuvel --- Cc: Leif Lindholm Cc: Ard Biesheuvel --- ArmPkg/Library/ArmExceptionLib/AArch64/AArch64Exception.c | 14 ++++++-----= --- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/ArmPkg/Library/ArmExceptionLib/AArch64/AArch64Exception.c b/Ar= mPkg/Library/ArmExceptionLib/AArch64/AArch64Exception.c index be1cdcf..1e2aeaa 100644 --- a/ArmPkg/Library/ArmExceptionLib/AArch64/AArch64Exception.c +++ b/ArmPkg/Library/ArmExceptionLib/AArch64/AArch64Exception.c @@ -19,7 +19,8 @@ EFI_EXCEPTION_CALLBACK gDebuggerExceptionHandlers[MAX_AA= RCH64_EXCEPTION + 1] =3D PHYSICAL_ADDRESS gExceptionVectorAlignmentMask =3D ARM_VECTOR_TABLE= _ALIGNMENT; UINTN gDebuggerNoHandlerValue =3D 0; // todo: define for= AArch64 =20 -#define EL0_STACK_PAGES 2 +#define EL0_STACK_SIZE EFI_PAGES_TO_SIZE(2) +STATIC UINTN mNewStackBase[EL0_STACK_SIZE / sizeof (UINTN)]; =20 VOID RegisterEl0Stack ( @@ -31,14 +32,11 @@ RETURN_STATUS ArchVectorConfig( ) { UINTN HcrReg; - UINT8 *Stack; =20 - Stack =3D AllocatePages (EL0_STACK_PAGES); - if (Stack =3D=3D NULL) { - return RETURN_OUT_OF_RESOURCES; - } - - RegisterEl0Stack ((UINT8 *)Stack + EFI_PAGES_TO_SIZE (EL0_STACK_PAGES)); + // Round down sp by 16 bytes alignment + RegisterEl0Stack ( + (VOID *) (((UINTN) mNewStackBase + EL0_STACK_SIZE) & ~0xFUL) + ); =20 if (ArmReadCurrentEL() =3D=3D AARCH64_EL2) { HcrReg =3D ArmReadHcr(); --=20 2.7.4 -=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 (#60940): https://edk2.groups.io/g/devel/message/60940 Mute This Topic: https://groups.io/mt/74770910/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-