aboutsummaryrefslogtreecommitdiff
path: root/hw/virtio/virtio-pci.h
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2019-07-30 09:43:32 +0100
committerPeter Maydell <peter.maydell@linaro.org>2019-07-30 09:43:32 +0100
commitee9545ed1543020fba52fa5fb8f2b71c63e5389f (patch)
treedcb2bfcffdf3559b5a9efd205000513d4aa3a00a /hw/virtio/virtio-pci.h
parent34e2746bca222db7cd22f1481bb24e54d2765bc1 (diff)
parent22235bb609c18547cf6b215bad1f9d2ec56ad371 (diff)
Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging
virtio, pc: fixes A couple of last minute bugfixes. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> # gpg: Signature made Mon 29 Jul 2019 22:13:22 BST # gpg: using RSA key 281F0DB8D28D5469 # gpg: Good signature from "Michael S. Tsirkin <mst@kernel.org>" [full] # gpg: aka "Michael S. Tsirkin <mst@redhat.com>" [full] # Primary key fingerprint: 0270 606B 6F3C DF3D 0B17 0970 C350 3912 AFBE 8E67 # Subkey fingerprint: 5D09 FD08 71C8 F85B 94CA 8A0D 281F 0DB8 D28D 5469 * remotes/mst/tags/for_upstream: pc-dimm: fix crash when invalid slot number is used Revert "hw: report invalid disable-legacy|modern usage for virtio-1-only devs" Revert "Revert "globals: Allow global properties to be optional"" Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'hw/virtio/virtio-pci.h')
-rw-r--r--hw/virtio/virtio-pci.h31
1 files changed, 6 insertions, 25 deletions
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index 619d9098c1..292275acb1 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -15,7 +15,6 @@
#ifndef QEMU_VIRTIO_PCI_H
#define QEMU_VIRTIO_PCI_H
-#include "qapi/error.h"
#include "hw/pci/msi.h"
#include "hw/virtio/virtio-bus.h"
@@ -119,12 +118,6 @@ typedef struct VirtIOPCIQueue {
uint32_t used[2];
} VirtIOPCIQueue;
-typedef enum {
- VIRTIO_PCI_MODE_LEGACY,
- VIRTIO_PCI_MODE_TRANSITIONAL,
- VIRTIO_PCI_MODE_MODERN,
-} VirtIOPCIMode;
-
struct VirtIOPCIProxy {
PCIDevice pci_dev;
MemoryRegion bar;
@@ -149,7 +142,6 @@ struct VirtIOPCIProxy {
bool disable_modern;
bool ignore_backend_features;
OnOffAuto disable_legacy;
- VirtIOPCIMode mode;
uint32_t class_code;
uint32_t nvectors;
uint32_t dfselect;
@@ -164,34 +156,23 @@ struct VirtIOPCIProxy {
static inline bool virtio_pci_modern(VirtIOPCIProxy *proxy)
{
- return proxy->mode != VIRTIO_PCI_MODE_LEGACY;
+ return !proxy->disable_modern;
}
static inline bool virtio_pci_legacy(VirtIOPCIProxy *proxy)
{
- return proxy->mode != VIRTIO_PCI_MODE_MODERN;
+ return proxy->disable_legacy == ON_OFF_AUTO_OFF;
}
-static inline bool virtio_pci_force_virtio_1(VirtIOPCIProxy *proxy,
- Error **errp)
+static inline void virtio_pci_force_virtio_1(VirtIOPCIProxy *proxy)
{
- if (proxy->disable_legacy == ON_OFF_AUTO_OFF) {
- error_setg(errp, "Unable to set disable-legacy=off on a virtio-1.0 "
- "only device");
- return false;
- }
- if (proxy->disable_modern == true) {
- error_setg(errp, "Unable to set disable-modern=on on a virtio-1.0 "
- "only device");
- return false;
- }
- proxy->mode = VIRTIO_PCI_MODE_MODERN;
- return true;
+ proxy->disable_modern = false;
+ proxy->disable_legacy = ON_OFF_AUTO_ON;
}
static inline void virtio_pci_disable_modern(VirtIOPCIProxy *proxy)
{
- proxy->mode = VIRTIO_PCI_MODE_LEGACY;
+ proxy->disable_modern = true;
}
/*