Prevent stack underrun in the event of a timer interrupt storm in
LocalApicTimerDxe and 8254TimerDxe interrupt handlers by using the
helper functions provided by NestedInterruptTplLib.
This fixes the same problem as addressed in commit 239b50a86
("OvmfPkg: End timer interrupt later to avoid stack overflow under
load"), but does so without breaking nested timer interrupts.
Cc: Paolo Bonzini <pbonzini@redhat.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2815
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=4162
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Acked-by: Laszlo Ersek <lersek@redhat.com>
45 lines
1.1 KiB
INI
45 lines
1.1 KiB
INI
## @file
|
|
# Local APIC timer driver that provides Timer Arch protocol.
|
|
# PcdFSBClock is defined in MdePkg and it should be set by the consumer.
|
|
#
|
|
# Copyright (c) 2005 - 2019, Intel Corporation. All rights reserved.<BR>
|
|
# Copyright (c) 2019, Citrix Systems, Inc.
|
|
#
|
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
#
|
|
##
|
|
|
|
[Defines]
|
|
INF_VERSION = 0x00010005
|
|
BASE_NAME = LocalApicTimerDxe
|
|
FILE_GUID = 52fe8196-f9de-4d07-b22f-51f77a0e7c41
|
|
MODULE_TYPE = DXE_DRIVER
|
|
VERSION_STRING = 1.0
|
|
|
|
ENTRY_POINT = TimerDriverInitialize
|
|
|
|
[Packages]
|
|
MdePkg/MdePkg.dec
|
|
UefiCpuPkg/UefiCpuPkg.dec
|
|
OvmfPkg/OvmfPkg.dec
|
|
|
|
[LibraryClasses]
|
|
UefiBootServicesTableLib
|
|
BaseLib
|
|
DebugLib
|
|
NestedInterruptTplLib
|
|
UefiDriverEntryPoint
|
|
LocalApicLib
|
|
|
|
[Sources]
|
|
LocalApicTimerDxe.h
|
|
LocalApicTimerDxe.c
|
|
|
|
[Protocols]
|
|
gEfiCpuArchProtocolGuid ## CONSUMES
|
|
gEfiTimerArchProtocolGuid ## PRODUCES
|
|
[Pcd]
|
|
gEfiMdePkgTokenSpaceGuid.PcdFSBClock ## CONSUMES
|
|
[Depex]
|
|
gEfiCpuArchProtocolGuid
|