OvmfPkg/VirtioLib: alloc VRING buffer with AllocateSharedPages()

The VRING buffer is a communication area between guest and hypervisor.
Allocate it using VIRTIO_DEVICE_PROTOCOL.AllocateSharedPages() so that
it can be mapped later with VirtioRingMap() for bi-directional access.

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
[lersek@redhat.com: correct typo in VirtioRingInit() comment blocks]
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Regression-tested-by: Laszlo Ersek <lersek@redhat.com>
This commit is contained in:
Brijesh Singh
2017-08-23 06:57:18 -04:00
committed by Laszlo Ersek
parent fef6becb55
commit b0338c5329
3 changed files with 16 additions and 12 deletions

View File

@@ -42,9 +42,8 @@
@param[out] Ring The virtio ring to set up.
@retval EFI_OUT_OF_RESOURCES AllocatePages() failed to allocate contiguous
pages for the requested QueueSize. Fields of
Ring have indeterminate value.
@return Status codes propagated from
VirtIo->AllocateSharedPages().
@retval EFI_SUCCESS Allocation and setup successful. Ring->Base
(and nothing else) is responsible for