[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v5 05/14] qga-win: fsinfo: pci-info: allow partial i
From: |
Tomáš Golembiovský |
Subject: |
[Qemu-devel] [PATCH v5 05/14] qga-win: fsinfo: pci-info: allow partial info |
Date: |
Tue, 23 Oct 2018 13:23:14 +0200 |
From: Sameeh Jubran <address@hidden>
The call to SetupDiGetDeviceRegistryProperty might fail because the
value doesn't exist in the registry, in this case we shouldn't exit from
the loop but instead continue to look for other available values in the
registry and set this value as unavailable (-1).
Signed-off-by: Sameeh Jubran <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
(cherry picked from commit d42f51de2d10b318d396f4f439f7a3995fdc0f65)
Signed-off-by: Michael Roth <address@hidden>
Signed-off-by: Tomáš Golembiovský <address@hidden>
---
qga/commands-win32.c | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/qga/commands-win32.c b/qga/commands-win32.c
index 8289e7d6ea..a8967abf06 100644
--- a/qga/commands-win32.c
+++ b/qga/commands-win32.c
@@ -505,7 +505,8 @@ static GuestPCIAddress *get_pci_info(char *guid, Error
**errp)
dev_info_data.cbSize = sizeof(SP_DEVINFO_DATA);
for (i = 0; SetupDiEnumDeviceInfo(dev_info, i, &dev_info_data); i++) {
- DWORD addr, bus, slot, func, dev, data, size2;
+ DWORD addr, bus, slot, data, size2;
+ int func, dev;
while (!SetupDiGetDeviceRegistryProperty(dev_info, &dev_info_data,
SPDRP_PHYSICAL_DEVICE_OBJECT_NAME,
&data, (PBYTE)buffer, size,
@@ -535,21 +536,21 @@ static GuestPCIAddress *get_pci_info(char *guid, Error
**errp)
*/
if (!SetupDiGetDeviceRegistryProperty(dev_info, &dev_info_data,
SPDRP_BUSNUMBER, &data, (PBYTE)&bus, size, NULL)) {
- break;
+ bus = -1;
}
/* The function retrieves the device's address. This value will be
* transformed into device function and number */
if (!SetupDiGetDeviceRegistryProperty(dev_info, &dev_info_data,
SPDRP_ADDRESS, &data, (PBYTE)&addr, size, NULL)) {
- break;
+ addr = -1;
}
/* This call returns UINumber of DEVICE_CAPABILITIES structure.
* This number is typically a user-perceived slot number. */
if (!SetupDiGetDeviceRegistryProperty(dev_info, &dev_info_data,
SPDRP_UI_NUMBER, &data, (PBYTE)&slot, size, NULL)) {
- break;
+ slot = -1;
}
/* SetupApi gives us the same information as driver with
@@ -559,12 +560,12 @@ static GuestPCIAddress *get_pci_info(char *guid, Error
**errp)
* DeviceNumber = (USHORT)(((propertyAddress) >> 16) & 0x0000FFFF);
* SPDRP_ADDRESS is propertyAddress, so we do the same.*/
- func = addr & 0x0000FFFF;
- dev = (addr >> 16) & 0x0000FFFF;
+ func = ((int) addr == -1) ? -1 : addr & 0x0000FFFF;
+ dev = ((int) addr == -1) ? -1 : (addr >> 16) & 0x0000FFFF;
pci->domain = dev;
- pci->slot = slot;
+ pci->slot = (int) slot;
pci->function = func;
- pci->bus = bus;
+ pci->bus = (int) bus;
break;
}
--
2.19.0
- [Qemu-devel] [PATCH v5 00/14] qga: report serial number and disk node, Tomáš Golembiovský, 2018/10/23
- [Qemu-devel] [PATCH v5 02/14] qga: linux: report disk serial number, Tomáš Golembiovský, 2018/10/23
- [Qemu-devel] [PATCH v5 05/14] qga-win: fsinfo: pci-info: allow partial info,
Tomáš Golembiovský <=
- [Qemu-devel] [PATCH v5 04/14] qga-win: prevent crash when executing fsinfo command, Tomáš Golembiovský, 2018/10/23
- [Qemu-devel] [PATCH v5 03/14] qga: linux: return disk device in guest-get-fsinfo, Tomáš Golembiovský, 2018/10/23
- [Qemu-devel] [PATCH v5 01/14] configure: add test for libudev, Tomáš Golembiovský, 2018/10/23
- [Qemu-devel] [PATCH v5 09/14] qga-win: refactor disk properties (bus), Tomáš Golembiovský, 2018/10/23
- [Qemu-devel] [PATCH v5 06/14] *additonal fixup for NULL pci_controller field, Tomáš Golembiovský, 2018/10/23
- [Qemu-devel] [PATCH v5 11/14] qga-win: refactor disk info, Tomáš Golembiovský, 2018/10/23
- [Qemu-devel] [PATCH v5 10/14] qga-win: report disk serial number, Tomáš Golembiovský, 2018/10/23
- [Qemu-devel] [PATCH v5 07/14] build: rename CONFIG_QGA_NTDDDISK to CONFIG_QGA_NTDDSCSI, Tomáš Golembiovský, 2018/10/23
- [Qemu-devel] [PATCH v5 08/14] qga-win: add debugging information, Tomáš Golembiovský, 2018/10/23
- [Qemu-devel] [PATCH v5 12/14] qga-win: handle multi-disk volumes, Tomáš Golembiovský, 2018/10/23