[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC v3 08/10] vfio-pci: add VFIO_FEATURE_ENABLE_AER_CAP fe
From: |
Chen Fan |
Subject: |
[Qemu-devel] [RFC v3 08/10] vfio-pci: add VFIO_FEATURE_ENABLE_AER_CAP feature |
Date: |
Tue, 10 Feb 2015 15:03:10 +0800 |
add a new "aercap" feature in vfio device, for controlling
whether expose aer capability.
Signed-off-by: Chen Fan <address@hidden>
---
hw/vfio/pci.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c
index bf314a1..c21b40b 100644
--- a/hw/vfio/pci.c
+++ b/hw/vfio/pci.c
@@ -138,6 +138,8 @@ typedef struct VFIOMSIXInfo {
enum {
#define VFIO_FEATURE_ENABLE_VGA_BIT 0
VFIO_FEATURE_ENABLE_VGA = (1 << VFIO_FEATURE_ENABLE_VGA_BIT),
+#define VFIO_FEATURE_ENABLE_AER_CAP_BIT 1
+ VFIO_FEATURE_ENABLE_AER_CAP = (1 << VFIO_FEATURE_ENABLE_AER_CAP_BIT),
};
typedef struct VFIOPCIDevice {
@@ -2721,8 +2723,10 @@ static int vfio_add_ext_cap(VFIOPCIDevice *vdev,
uint16_t pos)
switch (cap_id) {
case PCI_EXT_CAP_ID_ERR:
- pcie_add_capability(pdev, cap_id, cap_ver, pos, size);
- vfio_setup_pcie_aer(vdev, pos);
+ if (vdev->features & VFIO_FEATURE_ENABLE_AER_CAP) {
+ pcie_add_capability(pdev, cap_id, cap_ver, pos, size);
+ vfio_setup_pcie_aer(vdev, pos);
+ }
break;
default:
pcie_add_capability(pdev, cap_id, cap_ver, pos, size);
@@ -3487,6 +3491,8 @@ static Property vfio_pci_dev_properties[] = {
DEFINE_PROP_BIT("x-vga", VFIOPCIDevice, features,
VFIO_FEATURE_ENABLE_VGA_BIT, false),
DEFINE_PROP_INT32("bootindex", VFIOPCIDevice, bootindex, -1),
+ DEFINE_PROP_BIT("aercap", VFIOPCIDevice, features,
+ VFIO_FEATURE_ENABLE_AER_CAP_BIT, true),
/*
* TODO - support passed fds... is this necessary?
* DEFINE_PROP_STRING("vfiofd", VFIOPCIDevice, vfiofd_name),
--
1.9.3
- [Qemu-devel] [RFC v3 00/10] pass aer error to guest for vfio device, Chen Fan, 2015/02/10
- [Qemu-devel] [RFC v3 03/10] aer: introduce pcie_aer_setup to setup aer related bits, Chen Fan, 2015/02/10
- [Qemu-devel] [RFC v3 02/10] aer: fix a wrong init PCI_ERR_COR_STATUS w1cmask type register, Chen Fan, 2015/02/10
- [Qemu-devel] [RFC v3 06/10] piix: disable all vfio device aercap property, Chen Fan, 2015/02/10
- [Qemu-devel] [RFC v3 01/10] pcie_aer: fix typos in pcie_aer_inject_error comment, Chen Fan, 2015/02/10
- [Qemu-devel] [RFC v3 07/10] vfio_pci: change vfio device features bit macro to enum definition, Chen Fan, 2015/02/10
- [Qemu-devel] [RFC v3 08/10] vfio-pci: add VFIO_FEATURE_ENABLE_AER_CAP feature,
Chen Fan <=
- [Qemu-devel] [RFC v3 04/10] vfio: add pcie extanded capability support, Chen Fan, 2015/02/10
[Qemu-devel] [RFC v3 05/10] pcie_aer: expose pcie_aer_msg() interface, Chen Fan, 2015/02/10
[Qemu-devel] [RFC v3 09/10] vfio-pci: pass the aer error to guest, Chen Fan, 2015/02/10
[Qemu-devel] [RFC v3 10/10] pcie_aer: fix a trivial typo in PCIEAERMsg comments, Chen Fan, 2015/02/10