qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2] net: Fix hotplug with pci_add
@ 2010-06-08 15:43 Amit Shah
  2010-06-08 15:55 ` [Qemu-devel] " Juan Quintela
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Amit Shah @ 2010-06-08 15:43 UTC (permalink / raw)
  To: qemu list; +Cc: Amit Shah, Juan Quintela, Gerd Hoffmann, Markus Armbruster

The correct model type wasn't getting added when hotplugging nics with
pci_add.

Testcase: start VM with default nic type. In the qemu_monitor:

(qemu) pci_add auto nic model=virtio

This results in a nic hot-plug of the same nic type as the default.

This was broken in 5294e2c774f120e10b44652ac143abda356f44eb

Also changes the behaviour where no .init is defined for a
net_client_type. Previously, 0 was returned, which indicated the init
was successful and that 0 was the index into the nd_tables[] array.
Return -1, indicating unsuccessful init, in such a case.

Signed-off-by: Amit Shah <amit.shah@redhat.com>
---
Sorry, v1 was a stale patch.

v2:
 - Init 'ret' to -1, fixes compile err and added note in the commit msg
   explaining this.

 net.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/net.c b/net.c
index efa8b3d..4cb93ed 100644
--- a/net.c
+++ b/net.c
@@ -1106,6 +1106,7 @@ int net_client_init(Monitor *mon, QemuOpts *opts, int is_netdev)
     for (i = 0; net_client_types[i].type != NULL; i++) {
         if (!strcmp(net_client_types[i].type, type)) {
             VLANState *vlan = NULL;
+            int ret;
 
             if (qemu_opts_validate(opts, &net_client_types[i].desc[0]) == -1) {
                 return -1;
@@ -1118,14 +1119,16 @@ int net_client_init(Monitor *mon, QemuOpts *opts, int is_netdev)
                 vlan = qemu_find_vlan(qemu_opt_get_number(opts, "vlan", 0), 1);
             }
 
+            ret = -1;
             if (net_client_types[i].init) {
-                if (net_client_types[i].init(opts, mon, name, vlan) < 0) {
+                ret = net_client_types[i].init(opts, mon, name, vlan);
+                if (ret < 0) {
                     /* TODO push error reporting into init() methods */
                     qerror_report(QERR_DEVICE_INIT_FAILED, type);
                     return -1;
                 }
             }
-            return 0;
+            return ret;
         }
     }
 
-- 
1.7.0.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2010-06-15  8:03 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-08 15:43 [Qemu-devel] [PATCH v2] net: Fix hotplug with pci_add Amit Shah
2010-06-08 15:55 ` [Qemu-devel] " Juan Quintela
2010-06-08 16:33 ` [Qemu-devel] " Markus Armbruster
2010-06-08 17:26   ` Amit Shah
2010-06-09  6:37     ` Markus Armbruster
2010-06-09  7:59       ` [Qemu-devel] " Juan Quintela
2010-06-09 10:28         ` Amit Shah
2010-06-09  9:58       ` [Qemu-devel] " Amit Shah
2010-06-09 11:31         ` Markus Armbruster
2010-06-15  8:05         ` Amit Shah
2010-06-09  9:58 ` [Qemu-devel] " Michael S. Tsirkin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).