mirror of https://github.com/acidanthera/audk.git
OvmfPkg: Pass correct virtio-scsi request size
The patch at "1fc55a3933b0 OvmfPkg: Use heap memory for virtio-scsi request" modified the virtio-scsi request header memory to be allocated from the heap. In doing so the request structure header which was a local variable on the stack was converted to be a pointer. This required adjusting the size computation for the request header to reflect that the structure was changed to a pointer. Unfortunately, this was missed out in the call to VirtioAppendDesc() for enqueuing the request due to which only 8 bytes were being shared with the host instead of the size of the VIRTIO_SCSI_REQ structure which is 51 bytes. This resulted in the following error message to be printed by qemu: "qemu-system-<arch>: wrong size for virtio-scsi headers" and the virtio-scsi functionality degraded. Therefore, pass the correct size of the virtio-scsi request header when enqueuing the request. Reported-by: Aithal Srikanth <sraithal@amd.com> Tested-by: Aithal Srikanth <sraithal@amd.com> Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
This commit is contained in:
parent
24a375fcdd
commit
f203a6db92
|
@ -610,7 +610,7 @@ VirtioScsiPassThru (
|
|||
VirtioAppendDesc (
|
||||
&Dev->Ring,
|
||||
RequestDeviceAddress,
|
||||
sizeof Request,
|
||||
sizeof (*Request),
|
||||
VRING_DESC_F_NEXT,
|
||||
&Indices
|
||||
);
|
||||
|
|
Loading…
Reference in New Issue