For NICs, net_init_client() returns the index into the NICInfo table.
qemu_opts_foreach() interprets non-zero as an error return an stops
iterating over the options.
So, if you have more than one '-net nic' on the command line, subsequent
'-net' options do not get processed.
Fix this by making net_client_init() only return non-zero if
net_init_client() returns an error.
Reported-by: Peter Lieven <pl@dlh.net>
Patchworks-ID: 35736
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
static int net_init_client(QemuOpts *opts, void *dummy)
{
- return net_client_init(NULL, opts, 0);
+ if (net_client_init(NULL, opts, 0) < 0)
+ return -1;
+ return 0;
}
static int net_init_netdev(QemuOpts *opts, void *dummy)