[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 3/3] net: Warn about "-net nic" options which we
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH 3/3] net: Warn about "-net nic" options which were ignored |
Date: |
Mon, 23 May 2011 10:34:40 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) |
Peter Maydell <address@hidden> writes:
> Diagnose the case where the user asked for a NIC via "-net nic"
> but the board didn't instantiate that NIC (for example where the
> user asked for two NICs but the board only supports one). Note
> that this diagnostic doesn't apply to NICs created through -device,
> because those are always instantiated.
>
> Signed-off-by: Peter Maydell <address@hidden>
> ---
> hw/qdev.c | 1 +
> net.c | 15 +++++++++++++++
> net.h | 3 ++-
> 3 files changed, 18 insertions(+), 1 deletions(-)
>
> diff --git a/hw/qdev.c b/hw/qdev.c
> index 9519f5d..2987901 100644
> --- a/hw/qdev.c
> +++ b/hw/qdev.c
> @@ -468,6 +468,7 @@ void qdev_set_nic_properties(DeviceState *dev, NICInfo
> *nd)
> qdev_prop_exists(dev, "vectors")) {
> qdev_prop_set_uint32(dev, "vectors", nd->nvectors);
> }
> + nd->instantiated = 1;
> }
>
> BusState *qdev_get_child_bus(DeviceState *dev, const char *name)
> diff --git a/net.c b/net.c
> index 68c2840..a104976 100644
> --- a/net.c
> +++ b/net.c
> @@ -1304,6 +1304,7 @@ void net_check_clients(void)
> {
> VLANState *vlan;
> VLANClientState *vc;
> + int i;
>
> /* Don't warn about the default network setup that you get if
> * no command line -net or -netdev options are specified. There
> @@ -1348,6 +1349,20 @@ void net_check_clients(void)
> vc->name);
> }
> }
> +
> + /* Check that all NICs requested via -net nic actually got created.
> + * NICs created via -device don't need to be checked here because
> + * they are always instantiated.
> + */
> + for (i = 0; i < MAX_NICS; i++) {
> + NICInfo *nd = &nd_table[i];
> + if (nd->used && !nd->instantiated) {
> + fprintf(stderr, "Warning: requested NIC (%s, model %s) "
> + "was not created (not supported by this machine?)\n",
> + nd->name ? nd->name : "anonymous",
> + nd->model ? nd->model : "unspecified");
> + }
> + }
Nicer message would be possible if NICInfo had a Location for
error_print_loc(). Out of this patch's scope.
> }
>
> static int net_init_client(QemuOpts *opts, void *dummy)
> diff --git a/net.h b/net.h
> index 6ceca50..5b883a9 100644
> --- a/net.h
> +++ b/net.h
> @@ -133,7 +133,8 @@ struct NICInfo {
> char *devaddr;
> VLANState *vlan;
> VLANClientState *netdev;
> - int used;
> + int used; /* is this slot in nd_table[] being used? */
> + int instantiated; /* does this NICInfo correspond to an instantiated
> NIC? */
> int nvectors;
> };
Re: [Qemu-devel] [PATCH 0/3] net: reimplement -net nic diagnostic fix, Markus Armbruster, 2011/05/23