audk/OvmfPkg/IoMmuDxe
Laszlo Ersek d0c9afea42 OvmfPkg/IoMmuDxe: Unmap(): recycle MAP_INFO after BusMasterCommonBuffer[64]
In order for Unmap() to be callable from ExitBootServices() event handler
context (for cleaning up a BusMasterCommonBuffer[64] operation), we have
to completely liberate the affected path in Unmap() from dynamic memory
management.

The last remaining piece is the release of the MAP_INFO structure. Rather
than freeing it with FreePool(), recycle it to an internal list. Elements
of this "free list" can be reused for any kind of Map() operation, and can
be freed later, or recycled again.

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Brijesh Singh <brijesh.singh@amd.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Brijesh Singh <brijesh.singh@amd.com>
Reviewed-by: Brijesh Singh <brijesh.singh@amd.com>
2017-08-05 01:31:53 +02:00
..
AmdSevIoMmu.c OvmfPkg/IoMmuDxe: Unmap(): recycle MAP_INFO after BusMasterCommonBuffer[64] 2017-08-05 01:31:53 +02:00
AmdSevIoMmu.h OvmfPkg/IoMmuDxe: clean up used library classes 2017-08-05 01:31:53 +02:00
IoMmuDxe.c OvmfPkg/IoMmuDxe: clean up used library classes 2017-08-05 01:31:53 +02:00
IoMmuDxe.inf OvmfPkg/IoMmuDxe: clean up used library classes 2017-08-05 01:31:53 +02:00