From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (NAM11-CO1-obe.outbound.protection.outlook.com [40.107.220.87]) by mx.groups.io with SMTP id smtpd.web08.1867.1663726283584766266 for ; Tue, 20 Sep 2022 19:11:23 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="body hash did not verify" header.i=@amd.com header.s=selector1 header.b=lYiGm6OB; 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.220.87, mailfrom: ying-tsun.huang@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EKbYqNDjyPxH9okJWOdOG9Oj2/GMzu3EcDWI3AXT2QPnJbjMOnEs/GYVKw4wudoq2mfcOXuva4pv10vnJvZh23Y5g8Z7pdIdG5xTykE/qvfJnIpiT8ypiRECow2EJp5BPgIuubgpF7wG0zNgNvJaypbJ3J9tolX1se9Ve7/owWWWoCFggUWjb0rI+qcQZPHLVUA/LDbxSfC/nbNUqcLje8TTWfacvANPT1oePzcX/WTF3AWvpf/renRIpSMIZmO3hE0/bjCE09dAloaPp8PX0/j2RO5JtoBtmqjUtXYD6KxPkpPMV/WPwRNQCgjJGVn+nwZrA9PEh0b1DZnSPYw4jw== 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=m4DnFfIMuWmQOpaLIvG0cPuNjyANKj6XNxuzDHeHGgk=; b=fHV82cyeHZ0Tztffle7ykYQM57iNPwZdSfNjLeh3boFx/H/4yzLr2UGe/NG2TJDfoVHryFXEjBIgezBd+TJIshilLHeZGZfHvrSOkp+Kau7/iVODHPclM9eSZGF2ku2a4aGBAEs3oltpkv2/4K7DuACMNWldofoAqPZHF7PKqNVm+KjNU/cSPUXZnyxCNsiWFlv6sAq0bkePVD/vt0PGap2nwZ3Rm9Jk+TUDia3T2IGg2/To1QwUR8WHam1cbn0sxFYBxPQKCesNU2JgYcSwvNUHgRgeuzNfW48cnsX5knh/0eBxYbFc5LriWgjjFqG32uVcFKYI/L1FgVCVVXBNLA== 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=m4DnFfIMuWmQOpaLIvG0cPuNjyANKj6XNxuzDHeHGgk=; b=lYiGm6OBeIw0gfhlBj4l426rbDHup/czW/yC6aCY/+W00jmJ7hwITH6OHWu7d57gGZkHABN4ISRdkkD8phprdTRyWfuE0f5vhpqVVydihi1ATo/VfNs4JeM+P/pEzQQ+fOVZc2bLgTHv1NhRTDDOpxJt5yPIac9GaDZ0C9tHDQY= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from BN9PR12MB5305.namprd12.prod.outlook.com (2603:10b6:408:102::5) by DM4PR12MB5988.namprd12.prod.outlook.com (2603:10b6:8:6b::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5654.14; Wed, 21 Sep 2022 02:11:21 +0000 Received: from BN9PR12MB5305.namprd12.prod.outlook.com ([fe80::2d3d:180b:df02:3433]) by BN9PR12MB5305.namprd12.prod.outlook.com ([fe80::2d3d:180b:df02:3433%7]) with mapi id 15.20.5632.021; Wed, 21 Sep 2022 02:11:21 +0000 From: Ying-Tsun Huang To: devel@edk2.groups.io CC: Jian J Wang , Dandan Bi , Liming Gao Subject: [PATCH v1 1/1] MdeModulePkg/Core: Fix the potential hang of calling SetTimer. Date: Wed, 21 Sep 2022 10:10:23 +0800 Message-ID: <20220921021023.4009-2-ying-tsun.huang@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220921021023.4009-1-ying-tsun.huang@amd.com> References: <20220921021023.4009-1-ying-tsun.huang@amd.com> X-ClientProxiedBy: SI2PR04CA0016.apcprd04.prod.outlook.com (2603:1096:4:197::7) To BN9PR12MB5305.namprd12.prod.outlook.com (2603:10b6:408:102::5) Return-Path: Ying-Tsun.Huang@amd.com MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN9PR12MB5305:EE_|DM4PR12MB5988:EE_ X-MS-Office365-Filtering-Correlation-Id: affb82a1-4f14-4515-6303-08da9b769391 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3dzi4OWuEqqYbko73oY9DhFeWnaD2Y5VdeDbCLA3NsgqEgskstYQbA3R0+08hSpgt+9pYircI0sOJarq0vUZWgXJXEz6MUmnCcUu//8+Bht/Nxdau/EzacgwYsHlMSY8jIADGPZyfMO9sJOJo2PPAsTf4wuY9Q2mXUaPRJ1NO3teBkP8jpIMlXeFz+4Z28p7FcebF7fZIrtBjxLWwOSwcWrRAHZAYNtYbdI/NSVLXvDncrRUux3jPmQVeInLnvWcj5MzaXKhIIDrcneT05iF0IepQdG/xl7GKiuY+mzauLsRBuUvs1XZeJY4ovDdbvZPprupkDSFyRZegtNWcArTZluiNHcbiUEPgPJ5G4f5OAsb/wxRhY7cF8BVodFni+qF2zwzrJF/w5obc/RpElyX8Md7iYQRX+jdWzfUO76CIDeZEVtG7ru0yXHv+Zxn4zGgzmq/RZ5eBqmYtDHnLv1p+UHrNbF1KzJUIQb/ujeimWtQo1lwOzMJXhfeb45FLDWUPZiJqbHA5rm320uepmwKB55c+q3n5JvnPAq0x5ok5uwL7BEcQP9bI8NGh7Coi36Lx+JAmxdscWwYRKsvZ2wmXgFJMy9U0bD9SN9r7DS97RKn8RePC9Y8kOlCrIqeWFvm9YTMlOYiPwrd8Dh81+id3qdTNr1nKqumEFx5kJ9uGYBYu8TQcmeFGEfrdjUadyUDdWaPdJ+na4tvOxl67qjRP/Xoy50nXi8leI5WJM+tEhIjEasfSECmU+CHjmqLQsM/eAK0uxO9Qujon/wos4/L8A== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5305.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(346002)(366004)(39860400002)(376002)(396003)(136003)(451199015)(316002)(83380400001)(2906002)(4326008)(8676002)(36756003)(66946007)(66476007)(66556008)(86362001)(38100700002)(38350700002)(478600001)(6486002)(52116002)(26005)(6512007)(2616005)(6916009)(54906003)(1076003)(5660300002)(8936002)(186003)(41300700001)(6506007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?rj+/1696GXVzxdUs9bSUj+GV/36e2bWkEA63xOHgcwIYCzNHjxTuV43TOqcA?= =?us-ascii?Q?6o/OScHs5NREXf0+7G5bc6oL2nYrr/9DuJER6LI+e8LyjwGpjwmbJWHEhTQx?= =?us-ascii?Q?MGKhsiIsj58A3/lJAdWfKB8WatK1nt89FGR/9NZE73obgwVJpqKo3ObJOtJG?= =?us-ascii?Q?KuCfqE9vvxga1Ayp9p2ANyiHtQz9PJwKkpntS1shDJVzg4vi3zAFzf973R/i?= =?us-ascii?Q?zWj6YnysJXLCSXtFhnmsobhJJ3eLYyxGnDpKlLCd/eypE2QrDffA4xBLRa7K?= =?us-ascii?Q?AKdHUb7Rwoybp50JLMGn14MU4xo9pmsAuh1PfBcOj2tiqS/B+A448brqoSjF?= =?us-ascii?Q?9L8297g8Fi0Cw2TO/I6ccZMoT1pfGTw3bP0F1jn2gHqJa2nEvJv+0bj4xqAs?= =?us-ascii?Q?Fnhkzo/yS61JFCtqW5jA1phFnQKCcpFEW8js/jSPE58NjamrcR2ebq1u4Xb8?= =?us-ascii?Q?49D3cxmtKyG2mq5tfVorMQDh/3XdFNFpxPu1ip45zurqKfc2Qdyu3toAk0eg?= =?us-ascii?Q?HO68MVH2jXgt8yLQThW4xX1xJgykRVmJouLOtZD0Cy5qJ7mhq3it3F9PpIOY?= =?us-ascii?Q?mHyhsCHcvFbcVKyjlws6kqwp9yE7wNE049QToO5+KT/XO4a7ylsttiG+IuDj?= =?us-ascii?Q?/OhxGx6hL5hFaZ5PgSMr9Evn7j/7I3ygLM9IRjrDGr93ZX0fMKXE0GJ2Aq7/?= =?us-ascii?Q?UXO6EFHtWopbsrmjGx501GaOmo/afubpQCh8rlULvviqDVVd3n0wDYWd7SVZ?= =?us-ascii?Q?7BEAk9CfJJTlS3bRIp00Hh7a1aCipjx2FGPCgYGTnfuj2WejVtWg37IogPBx?= =?us-ascii?Q?vT1NTFzysRi4urOlbxKM2iZwCcPlyLJMdTsD6lake5bayup+9jLih8NMe0Ff?= =?us-ascii?Q?QT0ehyopBlIlRutCcexiw74Ef6NgfbWTwimJyXMw/Qg8VKdsJE6pC/fUe2mc?= =?us-ascii?Q?jkMkkTGmccQhwjztUYlUzSqWCmAy73MoNbxLmz91vnmn1VhvVi8Lpx369G3I?= =?us-ascii?Q?Nhz+TZJIF0XzRyINgYDaj2I5oOY/JM9UL93pnf5axuFmVHWgDj9qG6ntuhNB?= =?us-ascii?Q?25u2BRyOdI6lEC/1ePQbMaT2WqLXF76ulqIshdVZ5IOxtyA5QXQWjetqJa0y?= =?us-ascii?Q?YEGFO7EzSNc7kPTWQrU2vauZ0Ix3PMimh/bPd1H6VGeYX89PqiUxeXFgE1DW?= =?us-ascii?Q?npoy6EpvhcK0RWEFntjl8bIG96wHxdPnpy3vnOxxmTBhgnbyIJs2119ALr3e?= =?us-ascii?Q?52uLpqL6rsUgtAsADOOs8gvPCz81JyEH0d1gKr7Py3/iD/0H2j7DLxHOJVe/?= =?us-ascii?Q?e+8roxfleXos3z8/O7+24i3rjVLReAzEBh12yoRmHD4ZjixXIKb/ouKaJWpU?= =?us-ascii?Q?0IQ1LkMGO/e8PFlEtHa8f50Eb8HQlvrzMl14x8GxBJaSTX6PRyRHjdFovJ+w?= =?us-ascii?Q?yP5OeWNrsca75L6ge9Esh0ZiHNfT0zY4Su9wiCwBZdp/JWHcVqNpazSQInsc?= =?us-ascii?Q?/X0KYpHebHrO1wLGtV2e94w5B1SQ14/ui+nDQMgROpdFKX+UpcDF79ZS4KE7?= =?us-ascii?Q?XQO6p8gBS8ay4k9lOHhh2eWL8CezmQlnKCq03+V8?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: affb82a1-4f14-4515-6303-08da9b769391 X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5305.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2022 02:11:21.1821 (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: wuBfkNUZ/nSgPyT9XEt14lRUBpoy8sBLq1v1tzXiqXp4+rCp/IlTQI8RvTzMdNJMa2RhHDJ4oC3Ziu5mkUjmeQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5988 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain When calling SetTimer with Type is not TimerCancel and TriggerTime is 0, gTimer is used to get the timer period. However, gTimer is NULL before EFI_TIMER_ARCH_PROTOCOL is installed. Adding the check of gTimer and return EFI_NOT_READY to avoid the hang. Cc: Jian J Wang Cc: Dandan Bi Cc: Liming Gao Signed-off-by: Ying-Tsun Huang --- MdeModulePkg/Core/Dxe/DxeMain.h | 2 ++ MdeModulePkg/Core/Dxe/Event/Timer.c | 14 ++++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/MdeModulePkg/Core/Dxe/DxeMain.h b/MdeModulePkg/Core/Dxe/DxeMai= n.h index 815a6b4bd844..acf0b244aeda 100644 --- a/MdeModulePkg/Core/Dxe/DxeMain.h +++ b/MdeModulePkg/Core/Dxe/DxeMain.h @@ -1538,6 +1538,8 @@ CoreCreateEventInternal ( @retval EFI_SUCCESS The event has been set to be signaled at = the requested time @retval EFI_INVALID_PARAMETER Event or Type is not valid + @retval EFI_NOT_READY Type is not TimerCancel, TriggerTime is 0= , but + EFI_TIMER_ARCH_PROTOCOL is not installed = yet =20 **/ EFI_STATUS diff --git a/MdeModulePkg/Core/Dxe/Event/Timer.c b/MdeModulePkg/Core/Dxe/Ev= ent/Timer.c index 29e507c67c50..1621814ef3c5 100644 --- a/MdeModulePkg/Core/Dxe/Event/Timer.c +++ b/MdeModulePkg/Core/Dxe/Event/Timer.c @@ -229,6 +229,8 @@ CoreTimerTick ( @retval EFI_SUCCESS The event has been set to be signaled at = the requested time @retval EFI_INVALID_PARAMETER Event or Type is not valid + @retval EFI_NOT_READY Type is not TimerCancel, TriggerTime is 0= , but + EFI_TIMER_ARCH_PROTOCOL is not installed = yet =20 **/ EFI_STATUS @@ -255,6 +257,14 @@ CoreSetTimer ( return EFI_INVALID_PARAMETER; } =20 + if ((Type !=3D TimerCancel) && (TriggerTime =3D=3D 0)) { + if (gTimer) { + gTimer->GetTimerPeriod (gTimer, &TriggerTime); + } else { + return EFI_NOT_READY; + } + } + CoreAcquireLock (&mEfiTimerLock); =20 // @@ -270,10 +280,6 @@ CoreSetTimer ( =20 if (Type !=3D TimerCancel) { if (Type =3D=3D TimerPeriodic) { - if (TriggerTime =3D=3D 0) { - gTimer->GetTimerPeriod (gTimer, &TriggerTime); - } - Event->Timer.Period =3D TriggerTime; } =20 --=20 2.25.1