118 lines
3.9 KiB
Diff
118 lines
3.9 KiB
Diff
|
From git@z Thu Jan 1 00:00:00 1970
|
||
|
Subject: [PATCH 1/2] qga:/qga-win: adding a empty PCI address creation function
|
||
|
From: Kfir Manor <kfir@daynix.com>
|
||
|
Date: Sun, 20 Nov 2022 16:00:43 +0200
|
||
|
Message-Id: <20221120140044.752503-2-kfir@daynix.com>
|
||
|
To: qemu-devel@nongnu.org, Konstantin Kostiuk <kkostiuk@redhat.com>, Michael Roth <michael.roth@amd.com>
|
||
|
Cc: Yan Vugenfirer <yan@daynix.com>
|
||
|
In-Reply-To: <20221120140044.752503-1-kfir@daynix.com>
|
||
|
References: <20221120140044.752503-1-kfir@daynix.com>
|
||
|
List-Id: <qemu-devel.nongnu.org>
|
||
|
MIME-Version: 1.0
|
||
|
Content-Type: text/plain; charset="utf-8"
|
||
|
Content-Transfer-Encoding: 8bit
|
||
|
|
||
|
Refactoring code to avoid duplication of creating an empty PCI address code.
|
||
|
|
||
|
Signed-off-by: Kfir Manor <kfir@daynix.com>
|
||
|
Reviewed-by: Konstantin Kostiuk <kkostiuk@redhat.com>
|
||
|
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
|
||
|
---
|
||
|
qga/commands-win32.c | 20 +++++++++++++-------
|
||
|
1 file changed, 13 insertions(+), 7 deletions(-)
|
||
|
|
||
|
diff --git a/qga/commands-win32.c b/qga/commands-win32.c
|
||
|
index ec9f55b453..a645480496 100644
|
||
|
--- a/qga/commands-win32.c
|
||
|
+++ b/qga/commands-win32.c
|
||
|
@@ -599,6 +599,18 @@ static void get_pci_address_for_device(GuestPCIAddress *pci,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
+static GuestPCIAddress *get_empty_pci_address(void)
|
||
|
+{
|
||
|
+ GuestPCIAddress *pci = NULL;
|
||
|
+
|
||
|
+ pci = g_malloc0(sizeof(*pci));
|
||
|
+ pci->domain = -1;
|
||
|
+ pci->slot = -1;
|
||
|
+ pci->function = -1;
|
||
|
+ pci->bus = -1;
|
||
|
+ return pci;
|
||
|
+}
|
||
|
+
|
||
|
static GuestPCIAddress *get_pci_info(int number, Error **errp)
|
||
|
{
|
||
|
HDEVINFO dev_info = INVALID_HANDLE_VALUE;
|
||
|
@@ -608,13 +620,7 @@ static GuestPCIAddress *get_pci_info(int number, Error **errp)
|
||
|
SP_DEVICE_INTERFACE_DATA dev_iface_data;
|
||
|
HANDLE dev_file;
|
||
|
int i;
|
||
|
- GuestPCIAddress *pci = NULL;
|
||
|
-
|
||
|
- pci = g_malloc0(sizeof(*pci));
|
||
|
- pci->domain = -1;
|
||
|
- pci->slot = -1;
|
||
|
- pci->function = -1;
|
||
|
- pci->bus = -1;
|
||
|
+ GuestPCIAddress *pci = get_empty_pci_address();
|
||
|
|
||
|
dev_info = SetupDiGetClassDevs(&GUID_DEVINTERFACE_DISK, 0, 0,
|
||
|
DIGCF_PRESENT | DIGCF_DEVICEINTERFACE);
|
||
|
|
||
|
--
|
||
|
2.38.1
|
||
|
|
||
|
|
||
|
From git@z Thu Jan 1 00:00:00 1970
|
||
|
Subject: [PATCH 2/2] qga:/qga-win: skip getting pci info for USB disks
|
||
|
From: Kfir Manor <kfir@daynix.com>
|
||
|
Date: Sun, 20 Nov 2022 16:00:44 +0200
|
||
|
Message-Id: <20221120140044.752503-3-kfir@daynix.com>
|
||
|
To: qemu-devel@nongnu.org, Konstantin Kostiuk <kkostiuk@redhat.com>, Michael Roth <michael.roth@amd.com>
|
||
|
Cc: Yan Vugenfirer <yan@daynix.com>
|
||
|
In-Reply-To: <20221120140044.752503-1-kfir@daynix.com>
|
||
|
References: <20221120140044.752503-1-kfir@daynix.com>
|
||
|
List-Id: <qemu-devel.nongnu.org>
|
||
|
MIME-Version: 1.0
|
||
|
Content-Type: text/plain; charset="utf-8"
|
||
|
Content-Transfer-Encoding: 8bit
|
||
|
|
||
|
Skip getting PCI info from disks type USB and give them an empty PCI address instead.
|
||
|
|
||
|
Signed-off-by: Kfir Manor <kfir@daynix.com>
|
||
|
Reviewed-by: Konstantin Kostiuk <kkostiuk@redhat.com>
|
||
|
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
|
||
|
---
|
||
|
qga/commands-win32.c | 12 ++++++++----
|
||
|
1 file changed, 8 insertions(+), 4 deletions(-)
|
||
|
|
||
|
diff --git a/qga/commands-win32.c b/qga/commands-win32.c
|
||
|
index a645480496..14c43b3de5 100644
|
||
|
--- a/qga/commands-win32.c
|
||
|
+++ b/qga/commands-win32.c
|
||
|
@@ -878,10 +878,14 @@ static void get_single_disk_info(int disk_number,
|
||
|
* if that doesn't hold since that suggests some other unexpected
|
||
|
* breakage
|
||
|
*/
|
||
|
- disk->pci_controller = get_pci_info(disk_number, &local_err);
|
||
|
- if (local_err) {
|
||
|
- error_propagate(errp, local_err);
|
||
|
- goto err_close;
|
||
|
+ if (disk->bus_type == GUEST_DISK_BUS_TYPE_USB) {
|
||
|
+ disk->pci_controller = get_empty_pci_address();
|
||
|
+ } else {
|
||
|
+ disk->pci_controller = get_pci_info(disk_number, &local_err);
|
||
|
+ if (local_err) {
|
||
|
+ error_propagate(errp, local_err);
|
||
|
+ goto err_close;
|
||
|
+ }
|
||
|
}
|
||
|
if (disk->bus_type == GUEST_DISK_BUS_TYPE_SCSI
|
||
|
|| disk->bus_type == GUEST_DISK_BUS_TYPE_IDE
|
||
|
|
||
|
--
|
||
|
2.38.1
|
||
|
|
||
|
|