mirror of
https://github.com/acidanthera/audk.git
synced 2025-04-08 17:05:09 +02:00
OvmfPkg/Virtio10Dxe: add the RingBaseShift offset
virtio drivers use VIRTIO_DEVICE_PROTOCOL.MapSharedBuffer() to map the ring buffer host address to a device address. If an IOMMU is present then RingBaseShift contains the offset from the host address. Suggested-by: Laszlo Ersek <lersek@redhat.com> 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> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Regression-tested-by: Laszlo Ersek <lersek@redhat.com>
This commit is contained in:
parent
53a4c6047f
commit
60ee56295f
@ -498,11 +498,10 @@ Virtio10SetQueueAddress (
|
||||
UINT64 Address;
|
||||
UINT16 Enable;
|
||||
|
||||
ASSERT (RingBaseShift == 0);
|
||||
|
||||
Dev = VIRTIO_1_0_FROM_VIRTIO_DEVICE (This);
|
||||
|
||||
Address = (UINTN)Ring->Desc;
|
||||
Address += RingBaseShift;
|
||||
Status = Virtio10Transfer (Dev->PciIo, &Dev->CommonConfig, TRUE,
|
||||
OFFSET_OF (VIRTIO_PCI_COMMON_CFG, QueueDesc),
|
||||
sizeof Address, &Address);
|
||||
@ -511,6 +510,7 @@ Virtio10SetQueueAddress (
|
||||
}
|
||||
|
||||
Address = (UINTN)Ring->Avail.Flags;
|
||||
Address += RingBaseShift;
|
||||
Status = Virtio10Transfer (Dev->PciIo, &Dev->CommonConfig, TRUE,
|
||||
OFFSET_OF (VIRTIO_PCI_COMMON_CFG, QueueAvail),
|
||||
sizeof Address, &Address);
|
||||
@ -519,6 +519,7 @@ Virtio10SetQueueAddress (
|
||||
}
|
||||
|
||||
Address = (UINTN)Ring->Used.Flags;
|
||||
Address += RingBaseShift;
|
||||
Status = Virtio10Transfer (Dev->PciIo, &Dev->CommonConfig, TRUE,
|
||||
OFFSET_OF (VIRTIO_PCI_COMMON_CFG, QueueUsed),
|
||||
sizeof Address, &Address);
|
||||
|
Loading…
x
Reference in New Issue
Block a user