summaryrefslogtreecommitdiffstats
path: root/OvmfPkg/VirtioGpuDxe
diff options
context:
space:
mode:
authorLaszlo Ersek <lersek@redhat.com>2017-09-07 14:24:22 +0200
committerLaszlo Ersek <lersek@redhat.com>2017-09-08 20:23:53 +0200
commit8ddd12e53fad2c0e2ccde9ce73da56f4ee7dd6ee (patch)
treeb56c104e1332c247a292d31ae622d88f43398a42 /OvmfPkg/VirtioGpuDxe
parent5659ec3fa91399903ba3b913c1dfae5de2bd7a53 (diff)
downloadedk2-8ddd12e53fad2c0e2ccde9ce73da56f4ee7dd6ee.tar.gz
edk2-8ddd12e53fad2c0e2ccde9ce73da56f4ee7dd6ee.tar.bz2
edk2-8ddd12e53fad2c0e2ccde9ce73da56f4ee7dd6ee.zip
OvmfPkg/VirtioGpuDxe: don't unmap VRING & BackingStore at ExitBootServices
In one of the following patches, we'll change OvmfPkg/IoMmuDxe so that it unmaps all existent bus master operations (CommonBuffer, Read, Write) at ExitBootServices(), strictly after the individual device drivers abort pending DMA on the devices they manage, in their own ExitBootServices() notification functions. In preparation, remove the explicit VIRTIO_DEVICE_PROTOCOL.UnmapSharedBuffer() calls from VirtioGpuExitBoot(), originally added in commit 9bc5026c19a5 ("OvmfPkg/VirtioGpuDxe: map VRING for bus master common buffer operation", 2017-08-26) and commit f10ae923665f ("OvmfPkg/VirtioGpuDxe: map backing store to bus master device address", 2017-08-26). Add a DEBUG message so we can observe the ordering between VirtioGpuExitBoot() and the upcoming cleanup of mappings in OvmfPkg/IoMmuDxe. Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Cc: Brijesh Singh <brijesh.singh@amd.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Jordan Justen <jordan.l.justen@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Brijesh Singh <brijesh.singh@amd.com> Tested-by: Brijesh Singh <brijesh.singh@amd.com>
Diffstat (limited to 'OvmfPkg/VirtioGpuDxe')
-rw-r--r--OvmfPkg/VirtioGpuDxe/Commands.c23
1 files changed, 1 insertions, 22 deletions
diff --git a/OvmfPkg/VirtioGpuDxe/Commands.c b/OvmfPkg/VirtioGpuDxe/Commands.c
index 6e70b1c33f..6ce21976c9 100644
--- a/OvmfPkg/VirtioGpuDxe/Commands.c
+++ b/OvmfPkg/VirtioGpuDxe/Commands.c
@@ -353,30 +353,9 @@ VirtioGpuExitBoot (
{
VGPU_DEV *VgpuDev;
+ DEBUG ((DEBUG_VERBOSE, "%a: Context=0x%p\n", __FUNCTION__, Context));
VgpuDev = Context;
VgpuDev->VirtIo->SetDeviceStatus (VgpuDev->VirtIo, 0);
-
- //
- // If VirtioGpuDriverBindingStart() and VirtioGpuDriverBindingStop() have
- // been called thus far in such a sequence that right now our (sole) child
- // handle exists -- with the GOP on it standing for head (scanout) #0 --,
- // then we have to unmap the current video mode's backing store.
- //
- if (VgpuDev->Child != NULL) {
- //
- // The current video mode is guaranteed to have a valid and mapped backing
- // store, due to the first Gop.SetMode() call, made internally in
- // InitVgpuGop().
- //
- ASSERT (VgpuDev->Child->BackingStore != NULL);
-
- VgpuDev->VirtIo->UnmapSharedBuffer (
- VgpuDev->VirtIo,
- VgpuDev->Child->BackingStoreMap
- );
- }
-
- VgpuDev->VirtIo->UnmapSharedBuffer (VgpuDev->VirtIo, VgpuDev->RingMap);
}
/**