qemu: fix pci_enable_capabilities to set the CAP feature in pci::status
PATCH 1/1 qemu: fix pci_enable_capabilities to set the CAP feature in pci::status
(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.
---
qemu/hw/pci.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)
qemu/hw/pci.c +2 -0
@@ -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 )
Avi Kivity
AppliedQuoted 10 lines · Gregory Haskins
(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.
Applied, thanks.
Signature · 1 line
error compiling committee.c: too many arguments to function