From: Alex Williamson <alex.williamson@xxxxxxxxxx> Another Coverity found issue, lnkcap is a 32bit register and we're masking bits 16 & 17. Fix to uin32_t. Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> Signed-off-by: Avi Kivity <avi@xxxxxxxxxx> (cherry picked from commit 21f5a19a10c8f6a10d79a415bf640de85acede78) [AF: Backported] Signed-off-by: Andreas Färber <afaerber@xxxxxxx> --- hw/device-assignment.c | 8 ++++---- 1 Datei geändert, 4 Zeilen hinzugefügt(+), 4 Zeilen entfernt(-) diff --git a/hw/device-assignment.c b/hw/device-assignment.c index dc41bfd..c4c2535 100644 --- a/hw/device-assignment.c +++ b/hw/device-assignment.c @@ -1420,8 +1420,8 @@ static int assigned_device_pci_cap_init(PCIDevice *pci_dev) if ((pos = pci_find_cap_offset(pci_dev, PCI_CAP_ID_EXP, 0))) { uint8_t version, size; - uint16_t type, devctl, lnkcap, lnksta; - uint32_t devcap; + uint16_t type, devctl, lnksta; + uint32_t devcap, lnkcap; version = pci_get_byte(pci_dev->config + pos + PCI_EXP_FLAGS); version &= PCI_EXP_FLAGS_VERS; @@ -1491,11 +1491,11 @@ static int assigned_device_pci_cap_init(PCIDevice *pci_dev) pci_set_word(pci_dev->config + pos + PCI_EXP_DEVSTA, 0); /* Link capabilities, expose links and latencues, clear reporting */ - lnkcap = pci_get_word(pci_dev->config + pos + PCI_EXP_LNKCAP); + lnkcap = pci_get_long(pci_dev->config + pos + PCI_EXP_LNKCAP); lnkcap &= (PCI_EXP_LNKCAP_SLS | PCI_EXP_LNKCAP_MLW | PCI_EXP_LNKCAP_ASPMS | PCI_EXP_LNKCAP_L0SEL | PCI_EXP_LNKCAP_L1EL); - pci_set_word(pci_dev->config + pos + PCI_EXP_LNKCAP, lnkcap); + pci_set_long(pci_dev->config + pos + PCI_EXP_LNKCAP, lnkcap); pci_set_word(pci_dev->wmask + pos + PCI_EXP_LNKCAP, PCI_EXP_LNKCTL_ASPMC | PCI_EXP_LNKCTL_RCB | PCI_EXP_LNKCTL_CCC | PCI_EXP_LNKCTL_ES | -- 1.7.10.4 -- 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