[PATCH] qemu: fix pci_enable_capabilities to set the CAP feature in pci::status

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



(Applies to kvm-userspace.git:a1075de527f309850df278484f2ef4127827c6f4)

The PCI spec requires bit 4 of the config-space STATUS register to be set
in order to indicate that the capabilities pointer and capabilities area are
valid.  We have a pci_enable_capabilities() routine to fill out the
config-space metadata, but we leave the status bit cleared. It is not
apparent if this was intentionally omitted as part of the related
device-assignment support, or simply an oversight.  This patch completes
the function by also setting the status bit appropriately.

Signed-off-by: Gregory Haskins <ghaskins@xxxxxxxxxx>
CC: Sheng Yang <sheng@xxxxxxxxxxxxxxx>
---

 qemu/hw/pci.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/qemu/hw/pci.c b/qemu/hw/pci.c
index bf97c8c..5bfc4df 100644
--- a/qemu/hw/pci.c
+++ b/qemu/hw/pci.c
@@ -1009,6 +1009,8 @@ int pci_enable_capability_support(PCIDevice *pci_dev,
     if (!pci_dev)
         return -ENODEV;
 
+    pci_dev->config[0x06] |= 0x10; // status = capabilities
+
     if (config_start == 0)
 	pci_dev->cap.start = PCI_CAPABILITY_CONFIG_DEFAULT_START_ADDR;
     else if (config_start >= 0x40 && config_start < 0xff)

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux