On 11/10/22 12:42, Thomas Huth wrote: > On 08/11/2022 10.49, Claudio Fontana wrote: >> On 11/4/22 13:57, Thomas Huth wrote: >>> Running QEMU with "-nic help" used to work in QEMU 5.2 and earlier versions >>> (it showed the available netdev backends), but this feature got broken >>> during >>> some refactoring in version 6.0. Let's restore the old behavior, and while >>> we're at it, let's also print the available NIC models here now since this >>> option can be used to configure both, netdev backend and model in one go. >>> >>> Fixes: ad6f932fe8 ("net: do not exit on "netdev_add help" monitor command") >>> Signed-off-by: Thomas Huth <th...@redhat.com> >>> --- >>> net/net.c | 14 ++++++++++++-- >>> 1 file changed, 12 insertions(+), 2 deletions(-) >>> >>> diff --git a/net/net.c b/net/net.c >>> index c0516a8067..b4b8f2a9cc 100644 >>> --- a/net/net.c >>> +++ b/net/net.c >>> @@ -1571,8 +1571,18 @@ static int net_param_nic(void *dummy, QemuOpts >>> *opts, Error **errp) >>> const char *type; >>> >>> type = qemu_opt_get(opts, "type"); >>> - if (type && g_str_equal(type, "none")) { >>> - return 0; /* Nothing to do, default_net is cleared in vl.c */ >>> + if (type) { >>> + if (g_str_equal(type, "none")) { >>> + return 0; /* Nothing to do, default_net is cleared in vl.c >>> */ >>> + } >>> + if (is_help_option(type)) { >>> + GPtrArray *nic_models = qemu_get_nic_models(TYPE_DEVICE); >>> + show_netdevs(); >>> + printf("\n"); >>> + qemu_show_nic_models(type, (const char **)nic_models->pdata); >>> + g_ptr_array_free(nic_models, true); >> >> nit: would not the order: >> >>> + GPtrArray *nic_models; >>> + show_netdevs(); >>> + printf("\n"); >>> + nic_models = qemu_get_nic_models(TYPE_DEVICE); >>> + qemu_show_nic_models(type, (const char **)nic_models->pdata); >>> + g_ptr_array_free(nic_models, true); >> >> flow more logically? > > I think that's mostly a matter of taste ...
To some extent, but for the reader it would make more sense not to intermix unrelated code? I'd say: - show_netdevs _ get nic models - show nic models instead of: - get nic models - show netdevs - show nic models > and as long as the declaration > of the variable has to stay at the top of the block (according to QEMU's > coding style), I think I'd also prefer to keep the initialization there. > This conflict can easily be solved by putting the nic_models on its own line, as I have shown in my hunk above. Ciao, Claudio