aboutsummaryrefslogtreecommitdiff
path: root/hw/net
diff options
context:
space:
mode:
authorLaurent Vivier <lvivier@redhat.com>2021-10-19 09:15:32 +0200
committerMichael S. Tsirkin <mst@redhat.com>2021-10-20 04:37:55 -0400
commitbcfc906be47a88803307cd6b665dc4c26fdd6dd2 (patch)
treef3c02e2f420ddbfa8e691c37c3dbae6f3b6b870c /hw/net
parent515efffc2fd0928317a0a1ec47b28a972c40ddad (diff)
downloadqemu-bcfc906be47a88803307cd6b665dc4c26fdd6dd2.zip
qemu-bcfc906be47a88803307cd6b665dc4c26fdd6dd2.tar.gz
qemu-bcfc906be47a88803307cd6b665dc4c26fdd6dd2.tar.bz2
qdev/qbus: remove failover specific code
Commit f3a850565693 ("qdev/qbus: add hidden device support") has introduced a generic way to hide a device but it has modified qdev_device_add() to check a specific option of the failover device, "failover_pair_id", before calling the generic mechanism. It's not needed (and not generic) to do that in qdev_device_add() because this is also checked by the failover_hide_primary_device() function that uses the generic mechanism to hide the device. Cc: Jens Freimann <jfreimann@redhat.com> Signed-off-by: Laurent Vivier <lvivier@redhat.com> Message-Id: <20211019071532.682717-3-lvivier@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'hw/net')
-rw-r--r--hw/net/virtio-net.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
index 83642c8..3dd2896 100644
--- a/hw/net/virtio-net.c
+++ b/hw/net/virtio-net.c
@@ -3299,7 +3299,17 @@ static bool failover_hide_primary_device(DeviceListener *listener,
if (!device_opts) {
return false;
}
- standby_id = qdict_get_try_str(device_opts, "failover_pair_id");
+
+ if (!qdict_haskey(device_opts, "failover_pair_id")) {
+ return false;
+ }
+
+ if (!qdict_haskey(device_opts, "id")) {
+ error_setg(errp, "Device with failover_pair_id needs to have id");
+ return false;
+ }
+
+ standby_id = qdict_get_str(device_opts, "failover_pair_id");
if (g_strcmp0(standby_id, n->netclient_name) != 0) {
return false;
}