]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceFunctions.c
OvmfPkg: VIRTIO_DEVICE_PROTOCOL: widen the Features bitmap to 64 bits
[mirror_edk2.git] / OvmfPkg / Library / VirtioMmioDeviceLib / VirtioMmioDeviceFunctions.c
index 3950c07f7f5d9a0ef1ab54b461b740e1eec82010..4b7d2932836295ebba9c969f2b342420350e413d 100644 (file)
@@ -22,7 +22,7 @@ EFI_STATUS
 EFIAPI\r
 VirtioMmioGetDeviceFeatures (\r
   IN VIRTIO_DEVICE_PROTOCOL *This,\r
-  OUT UINT32                *DeviceFeatures\r
+  OUT UINT64                *DeviceFeatures\r
   )\r
 {\r
   VIRTIO_MMIO_DEVICE *Device;\r
@@ -217,14 +217,18 @@ EFI_STATUS
 EFIAPI\r
 VirtioMmioSetGuestFeatures (\r
   VIRTIO_DEVICE_PROTOCOL *This,\r
-  UINT32                  Features\r
+  UINT64                  Features\r
   )\r
 {\r
   VIRTIO_MMIO_DEVICE *Device;\r
 \r
   Device = VIRTIO_MMIO_DEVICE_FROM_VIRTIO_DEVICE (This);\r
 \r
-  VIRTIO_CFG_WRITE (Device, VIRTIO_MMIO_OFFSET_GUEST_FEATURES, Features);\r
+  if (Features > MAX_UINT32) {\r
+    return EFI_UNSUPPORTED;\r
+  }\r
+  VIRTIO_CFG_WRITE (Device, VIRTIO_MMIO_OFFSET_GUEST_FEATURES,\r
+    (UINT32)Features);\r
 \r
   return EFI_SUCCESS;\r
 }\r