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>
44 lines
1.0 KiB
INI
44 lines
1.0 KiB
INI
## @file
|
|
# 8254 timer driver that provides Timer Arch protocol.
|
|
#
|
|
# Copyright (c) 2005 - 2019, Intel Corporation. All rights reserved.<BR>
|
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
#
|
|
##
|
|
|
|
[Defines]
|
|
INF_VERSION = 0x00010005
|
|
BASE_NAME = Timer
|
|
MODULE_UNI_FILE = Timer.uni
|
|
FILE_GUID = C190FE35-44AA-41A1-8AEA-4947BC60E09D
|
|
MODULE_TYPE = DXE_DRIVER
|
|
VERSION_STRING = 1.0
|
|
|
|
ENTRY_POINT = TimerDriverInitialize
|
|
|
|
[Packages]
|
|
MdePkg/MdePkg.dec
|
|
OvmfPkg/OvmfPkg.dec
|
|
|
|
[LibraryClasses]
|
|
UefiBootServicesTableLib
|
|
BaseLib
|
|
DebugLib
|
|
NestedInterruptTplLib
|
|
UefiDriverEntryPoint
|
|
IoLib
|
|
|
|
[Sources]
|
|
Timer.h
|
|
Timer.c
|
|
|
|
[Protocols]
|
|
gEfiCpuArchProtocolGuid ## CONSUMES
|
|
gEfiLegacy8259ProtocolGuid ## CONSUMES
|
|
gEfiTimerArchProtocolGuid ## PRODUCES
|
|
|
|
[Depex]
|
|
gEfiCpuArchProtocolGuid AND gEfiLegacy8259ProtocolGuid
|
|
[UserExtensions.TianoCore."ExtraFiles"]
|
|
TimerExtra.uni
|