From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mx.groups.io with SMTP id smtpd.web09.5756.1654691037157525956 for ; Wed, 08 Jun 2022 05:23:59 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=ciAnvFsg; spf=pass (domain: intel.com, ip: 192.55.52.136, mailfrom: jiewen.yao@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654691038; x=1686227038; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=ZwAZOjZ3uRTqbPmy0zhm8QlRTDCNIXd33aGoN0ZU6EI=; b=ciAnvFsgg1F4VEBZxqnEI3m5v6mzsUA/nYnFR6kRs+CZ/DjcIvruWaRA xBH0yh2pS7N7FAqWfjw7xt9s9MdFTbjvErQSnjv6M7PaKXzCULwJ2lxZU 7x6+hWNqYlusGZCZXCBQJHVRO1ZDsWmoyXlixQQh4ZAcWTt+VGZsr0YrH gFRHKJkyrsQ+B3LgNrroqo4bOg03Ohz7a6MESQwYpkTwbtajRMKo0ojD+ Zf7PvfENlG5yXTfPerhsNFIMJxqARR6/J+QjOM1HDydGGVX+qT6N5/Fwg b2RY8mUpbde8Q4vSuv+/iVp3Q8tKpXc9jmsW+kevoXOSJ281Wn+p7JBm1 w==; X-IronPort-AV: E=McAfee;i="6400,9594,10371"; a="256707143" X-IronPort-AV: E=Sophos;i="5.91,286,1647327600"; d="scan'208";a="256707143" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Jun 2022 05:23:51 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,286,1647327600"; d="scan'208";a="826940164" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by fmsmga006.fm.intel.com with ESMTP; 08 Jun 2022 05:23:51 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Wed, 8 Jun 2022 05:23:50 -0700 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Wed, 8 Jun 2022 05:23:50 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx607.amr.corp.intel.com (10.18.126.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Wed, 8 Jun 2022 05:23:50 -0700 Received: from NAM02-DM3-obe.outbound.protection.outlook.com (104.47.56.45) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Wed, 8 Jun 2022 05:23:50 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LreHRRVxoFfRwDVGMsaADNzxKh6yYEc/y/I3LnnLjG+SHjkfclcXJfNglQ8eyuoMwnKiaUHIL8ntRPTrcHTLyawvM0NIlJd862MC8su363UBL218qAM3JA+59miX4/SHehdu0/8JjYBMi1kxfgmOn8dEZPOgO5VnBewN2KygOg9r24/yXB103C8RZnNRLMdpbpzAyzTUQmzBkdJt+CAa3vutQGAO/lpjS8wuaIiZzGIq0Wj0W84pfnLSwh9/9zQ6w0J/+TSqsUFcBpbKseG+3iyn0P1FmDBY97qhJ1Olt6h8DkE7w6SXgXbZWLc2EMgIZu2ZXdiTfk2Ql/X6+fFhSw== 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=FAlWdzsEhbyXYvVzbGT2xm8cYm2lJbuuzIdALEdaCfA=; b=Wk8W03lXzJh73AEb3BZnWb+BSw9eQyLELK7DYLYc/HQMngB8cj9S3ktjr0GlzpDZmV2oWJjgNK9N7mvc4GgCqPPNlwCXqJjfe8mUja6g0w4luW68BqWZjbePVf93Nu4NynLCWNjpq1WR4jh7lIgQ4OPh2yHGgwrRqrg3Q5GN6srpJ38MtXgjTzyvO7BmR47og6ZdwshsKJL0v5ombreEv2dyIkED0TUdGsvqdzXSD3l51o9ImOBQfpNe0b9t+jAal2gFUSrfKFfENkQs0LzKmksneOELp9pys5RhaFS6eFudZpjqrUFa7ZE0LNyYY76G9GtYQCoM2b0E4DENX/epFA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from MW4PR11MB5872.namprd11.prod.outlook.com (2603:10b6:303:169::14) by MW4PR11MB5889.namprd11.prod.outlook.com (2603:10b6:303:168::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.19; Wed, 8 Jun 2022 12:23:48 +0000 Received: from MW4PR11MB5872.namprd11.prod.outlook.com ([fe80::24ae:1cd3:3192:4c7e]) by MW4PR11MB5872.namprd11.prod.outlook.com ([fe80::24ae:1cd3:3192:4c7e%5]) with mapi id 15.20.5314.019; Wed, 8 Jun 2022 12:23:48 +0000 From: "Yao, Jiewen" To: Gerd Hoffmann , "devel@edk2.groups.io" CC: Oliver Steffen , James Bottomley , "Gao, Liming" , Tom Lendacky , Brijesh Singh , "Justen, Jordan L" , "Feng, Bob C" , "Chen, Christine" , "Xu, Min M" , "Aktas, Erdem" , Ard Biesheuvel , Pawel Polawski , Jiri Slaby Subject: Re: [PATCH v5 1/1] OvmfPkg/Sec: fix stack switch Thread-Topic: [PATCH v5 1/1] OvmfPkg/Sec: fix stack switch Thread-Index: AQHYex/l2E0l6Hwn2UiEQF5XF/V+Ha1FbukQ Date: Wed, 8 Jun 2022 12:23:48 +0000 Message-ID: References: <20220608100936.3360854-1-kraxel@redhat.com> In-Reply-To: <20220608100936.3360854-1-kraxel@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.6.500.17 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 66f06f68-487e-4004-aa94-08da4949bd77 x-ms-traffictypediagnostic: MW4PR11MB5889:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8wPksp9uv4qu3ZvwjU13207tF+8jHW0M3nF5H/7YzfjYJjHHepnLOlEwGXPgoEnPKqqAOVV+bakiIGtQMczpI4bRTyHUBrmnQ19/n9JJsbNRjUMYBDv/cI2oOHXgDPgYEyTp0Uusv9zNnEAGAQI9GpQp3e7XqvyJ7z8U2omTzMWlrX3oShWtmAQZVb4rxJG4JMRPv1bNvOh1wJLnl6T9eqzfEWWfXtOiPTnhx7GHjzI3Lhsi0z614+75yzY2eGWdmrKL5aoeAwE3eRFzzU9MletlcFUyjqtErEhQs3TqO7mYrALyYS7GR/Z3DSmpksrwbPPpDW7V74nmKgaBrZMenBXCBYjkzyWO3EJtD5WeYzjIYWGSEbua6Rm4o/lSDmkY4lo3PPhg9QwCtNAhXVc3n7J140m0yq6ZSh/PRpB43WGHvgH/IH6BnrnjeKyMn8tZs8RBNbJfRRx383cYeO6yedpicyvc741ShiBxaaMy5TaGS6RXtAHr0yUDQPfqLWjIgGXpT6FQ5yzCSDSvfgtUxuvB6gF647B3LwoojKuLRfPbBV/HukD84bjxSlgY8oOpGVDCWym3+Bv9GEtkwlRayJeIl7tcBHl97QpRprZwGflXB5NbFnTYMY+uERl5SOVWelhze8yZM1K758L/avL4cMu/H3C+yw4J3W0ISHv9D3GMEwu1n1KjypDQ4Rg9aeHoLabu2BS9nHHgw75wuEqqf2C7TmsQ3D2f/AMrMSfavTjHKBm1JVfHKbt+6FiLfSQxJcpg+d5HFfm2YRvs29lcktOqSCB6ggnyDxOgIQGWC+Cbi1ZAyEh1oNOGW0xjfxBpTQLomxAXqJZPugRXdRW4kA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR11MB5872.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(6506007)(122000001)(316002)(33656002)(8676002)(71200400001)(38070700005)(66446008)(4326008)(7416002)(52536014)(2906002)(966005)(86362001)(5660300002)(76116006)(66946007)(110136005)(66556008)(9686003)(26005)(8936002)(186003)(508600001)(66476007)(64756008)(53546011)(7696005)(55016003)(82960400001)(38100700002)(54906003)(83380400001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?SkyP/UiGir3dzT6i4z1bxkfk9VR2muu7Zr8PfSzOv1dBHkOtKuQs9tih0TlV?= =?us-ascii?Q?RXBNKWTNhPNr6BLTUueYmNr8CIOZ/iS2J1JsB5VCFldd8IjAV9AtexXp1L0M?= =?us-ascii?Q?O1y7jB6zIMidqSiWOuf+207OAP1k8Q8JTl6xwKRgchIV4W6v3tF6YaIzmQoO?= =?us-ascii?Q?X5DK6wD1bubpZfQASjGhQrRK5fiMcvi+N2n2kiCV6/6YCp5Ga2bYPBr/gZz9?= =?us-ascii?Q?y7zSJcj2d0RCk6M3F2Uw/ebrk8+sje9Y61eP/NMm0thEyHw+gfvDv6tB47B0?= =?us-ascii?Q?+x95X5vMI7OWLLrRtGiuGi5Kiox8eXkAGoZi+Lg9XajCYfKdwTwXyRyh/UY/?= =?us-ascii?Q?t/tY+CkJ9Xh3Znf+RwG/zxI9eLiutR0po/5qxwtW9q7MI54Xg5D4pwhRUgwd?= =?us-ascii?Q?yYcmnHkLTaJv0j88Fod5h0iY4KwdxD7KbRdvIfuzRH7aukto4g7dxsS3XB9z?= =?us-ascii?Q?nK5/sRhXTk1YEKZ1MVSNUIH04NN6wMH1dASaCHtg/wHfaxMhP5eYPMt4sk6O?= =?us-ascii?Q?ifSqCXQHJJFpi3ni7qHQxLtaj2E8FpinC5wDQLI/Mne35I8aSzbsTx8TTNml?= =?us-ascii?Q?bFrvxD5jrtoXdnD/rH9VccVHIw4EmJZAD53jlLM55gJrQPc/HjRVQ2VamKC2?= =?us-ascii?Q?Y4iw+rqdnWslHYJ/HhcdpyiexX+EZTGA/SC3MVfUENFCalUBk+JlWx0PYgx6?= =?us-ascii?Q?C27tDSjeSSbYViUqq9Kez1Djr++HGp6yY1jcHktHWriVaMzATLH3vDPEZds7?= =?us-ascii?Q?jOIcbl17jlgb6J4NIVUGNuKBaNP1Ln5OSk9HoNids7/DfjbT1pp6KnqGTsnT?= =?us-ascii?Q?TIE3S5+e9dPTUH+6CSPdNHPA0sgzuyeGEs4OanEaqX8Ejz6DVOIrkbo3yMUG?= =?us-ascii?Q?4XC+2CvVnF8Y5YAeZcuohcPAn2XiQpaEyjyYxFI5Iki33h8NvOZT6jf6diYr?= =?us-ascii?Q?Q+CI+PIsXPy39ywmmOhDGzHU//m+pL6TWK2AhEcyE2Y/Szv2CQwdTwhiRaXH?= =?us-ascii?Q?S9f7T7Uf2hsKvMKfEW9afG2DNCuyoJA3PoKpzdaugJfpnI2cZ63o/LnXDu0o?= =?us-ascii?Q?lJnRBv8HLTRirA7EtoMCIZADPqe/zojQeViC6hh/Jaqnwld6huPILWZizaXJ?= =?us-ascii?Q?ZMMwEA9R2mRy3jlm5J4C6B+QQaLMI5OJbNZQjrU7Jq8NjD1YWuzVAdGcK0wL?= =?us-ascii?Q?zcVOMs2AqASv00NOrWTVvhj7n57PjGIW5dsWfmNa4FQb6roDmB+WA2Eefeeq?= =?us-ascii?Q?j+o1FKT3P/fCwT0gt0VtVGUoZEDkB5jI15C3XxA9ajMy7CTm3Q1BpviC62F5?= =?us-ascii?Q?PLln6CVoGaYATLyEWb/92iYnJi988Ll1ndy2w12CCQPhGVQ+QA7u+/Nk37Pq?= =?us-ascii?Q?CIH5/AdZIvS0P/Rp1LoYX0LJ0w1X7cyaRJjGACOTjfdOG/ZPEGY9VCQzaqIP?= =?us-ascii?Q?xRwYCXloYK4JfXfyWRViUDbD2gS83DyapP/sZCU404W6lknTxAjgQW9sP9R6?= =?us-ascii?Q?3YJcIb+iwZBiXTCM4emxha8fHvuy9ScAYq99Nc3C+oiteiSDRuhm/jNAtljK?= =?us-ascii?Q?12ZuhPqDhDBFe4uvbB/G/YVkCAP/fA4qj2IqzlGmSbjtc4vGnzje1egGqi/S?= =?us-ascii?Q?fW3IgcSox++3s8JjaktYO14q2kAAcrbgmj6ubZlKVdeCzIYidZjeN24NEyHL?= =?us-ascii?Q?/TSj9SukULwRHQnbjQS0ztcxfVtJ31V/iHDnaB/6BxxdT6+sKRGskRSWPnFL?= =?us-ascii?Q?Jb3RgSdimQ=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW4PR11MB5872.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 66f06f68-487e-4004-aa94-08da4949bd77 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Jun 2022 12:23:48.6210 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: OBC3DyvOkGJY2KlXc/dSYlZRvry1bf4bR5PRouPNFBfIvdaHhjqRenSvM9rTCgHUP9MUQiFEkWD9VFViRVPTDw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR11MB5889 Return-Path: jiewen.yao@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Merged https://github.com/tianocore/edk2/pull/2956 > -----Original Message----- > From: Gerd Hoffmann > Sent: Wednesday, June 8, 2022 6:10 PM > To: devel@edk2.groups.io > Cc: Oliver Steffen ; James Bottomley > ; Gao, Liming ; Tom > Lendacky ; Brijesh Singh > ; Gerd Hoffmann ; Justen, > Jordan L ; Feng, Bob C ; > Chen, Christine ; Xu, Min M ; > Aktas, Erdem ; Yao, Jiewen > ; Ard Biesheuvel ; Pawel > Polawski ; Jiri Slaby > Subject: [PATCH v5 1/1] OvmfPkg/Sec: fix stack switch >=20 > The ebp/rbp register can either be used for the frame pointer or > as general purpose register. With gcc (and clang) this depends > on the -f(no-)omit-frame-pointer switch. >=20 > This patch updates tools_def.template to explicitly set the compiler > option and also add a define to allow conditionally compile code. >=20 > The new define is used to fix stack switching in TemporaryRamMigration. > The ebp/rbp must not be touched when the compiler can use it as general > purpose register. With version 12 gcc starts actually using the > register, so changing it leads to firmware crashes in some > configurations. >=20 > Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3934 > Reported-by: Jiri Slaby > Signed-off-by: Gerd Hoffmann > --- > OvmfPkg/Sec/SecMain.c | 4 ++++ > BaseTools/Conf/tools_def.template | 6 +++--- > 2 files changed, 7 insertions(+), 3 deletions(-) >=20 > diff --git a/OvmfPkg/Sec/SecMain.c b/OvmfPkg/Sec/SecMain.c > index 1167d22a68cc..3ca0dcdfd3dd 100644 > --- a/OvmfPkg/Sec/SecMain.c > +++ b/OvmfPkg/Sec/SecMain.c > @@ -1052,11 +1052,15 @@ TemporaryRamMigration ( > if (SetJump (&JumpBuffer) =3D=3D 0) { > #if defined (MDE_CPU_IA32) > JumpBuffer.Esp =3D JumpBuffer.Esp + DebugAgentContext.StackMigrateOf= fset; > + #ifndef OMIT_FRAME_POINTER > JumpBuffer.Ebp =3D JumpBuffer.Ebp + DebugAgentContext.StackMigrateOf= fset; > #endif > + #endif > #if defined (MDE_CPU_X64) > JumpBuffer.Rsp =3D JumpBuffer.Rsp + DebugAgentContext.StackMigrateOf= fset; > + #ifndef OMIT_FRAME_POINTER > JumpBuffer.Rbp =3D JumpBuffer.Rbp + DebugAgentContext.StackMigrateOf= fset; > + #endif > #endif > LongJump (&JumpBuffer, (UINTN)-1); > } > diff --git a/BaseTools/Conf/tools_def.template > b/BaseTools/Conf/tools_def.template > index 5ed19810b727..adcd23f7273f 100755 > --- a/BaseTools/Conf/tools_def.template > +++ b/BaseTools/Conf/tools_def.template > @@ -1849,9 +1849,9 @@ NOOPT_*_*_OBJCOPY_ADDDEBUGFLAG =3D --add- > gnu-debuglink=3D$(DEBUG_DIR)/$(MODULE_N > *_*_*_DTC_PATH =3D DEF(DTC_BIN) >=20 > DEFINE GCC_ALL_CC_FLAGS =3D -g -Os -fshort-wchar -fno-builtin= -fno- > strict-aliasing -Wall -Werror -Wno-array-bounds -include AutoGen.h -fno- > common > -DEFINE GCC_IA32_CC_FLAGS =3D DEF(GCC_ALL_CC_FLAGS) -m32 -malig= n- > double -freorder-blocks -freorder-blocks-and-partition -O2 -mno-stack-arg= - > probe > -DEFINE GCC_X64_CC_FLAGS =3D DEF(GCC_ALL_CC_FLAGS) -mno-red-zo= ne - > Wno-address -mno-stack-arg-probe > -DEFINE GCC_ARM_CC_FLAGS =3D DEF(GCC_ALL_CC_FLAGS) -mlittle-en= dian > -mabi=3Daapcs -fno-short-enums -funsigned-char -ffunction-sections -fdata= - > sections -fomit-frame-pointer -Wno-address -mthumb -mfloat-abi=3Dsoft -fn= o-pic > -fno-pie > +DEFINE GCC_IA32_CC_FLAGS =3D DEF(GCC_ALL_CC_FLAGS) -m32 -malig= n- > double -freorder-blocks -freorder-blocks-and-partition -O2 -mno-stack-arg= - > probe -fno-omit-frame-pointer > +DEFINE GCC_X64_CC_FLAGS =3D DEF(GCC_ALL_CC_FLAGS) -mno-red-zo= ne > -Wno-address -mno-stack-arg-probe -fomit-frame-pointer - > DOMIT_FRAME_POINTER=3D1 > +DEFINE GCC_ARM_CC_FLAGS =3D DEF(GCC_ALL_CC_FLAGS) -mlittle-en= dian > -mabi=3Daapcs -fno-short-enums -funsigned-char -ffunction-sections -fdata= - > sections -fomit-frame-pointer -DOMIT_FRAME_POINTER=3D1 -Wno-address - > mthumb -mfloat-abi=3Dsoft -fno-pic -fno-pie > DEFINE GCC_ARM_CC_XIPFLAGS =3D -mno-unaligned-access > DEFINE GCC_AARCH64_CC_FLAGS =3D DEF(GCC_ALL_CC_FLAGS) -mlittle- > endian -fno-short-enums -fverbose-asm -funsigned-char -ffunction-section= s - > fdata-sections -Wno-address -fno-asynchronous-unwind-tables -fno-unwind- > tables -fno-pic -fno-pie -ffixed-x18 > DEFINE GCC_AARCH64_CC_XIPFLAGS =3D -mstrict-align -mgeneral-regs-onl= y > -- > 2.36.1