From f203a6db92eedf03ac544ed270404cb29d3dea7f Mon Sep 17 00:00:00 2001 From: Sami Mujawar Date: Fri, 2 Aug 2024 03:44:30 +0100 Subject: 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-: 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 Tested-by: Aithal Srikanth Signed-off-by: Sami Mujawar --- OvmfPkg/VirtioScsiDxe/VirtioScsi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OvmfPkg') diff --git a/OvmfPkg/VirtioScsiDxe/VirtioScsi.c b/OvmfPkg/VirtioScsiDxe/VirtioScsi.c index 11e4d8703d..ac8c57660e 100644 --- a/OvmfPkg/VirtioScsiDxe/VirtioScsi.c +++ b/OvmfPkg/VirtioScsiDxe/VirtioScsi.c @@ -610,7 +610,7 @@ VirtioScsiPassThru ( VirtioAppendDesc ( &Dev->Ring, RequestDeviceAddress, - sizeof Request, + sizeof (*Request), VRING_DESC_F_NEXT, &Indices ); -- cgit v1.2.3