On Fri, Nov 20, 2020 at 2:58 PM Markus Armbruster <arm...@redhat.com> wrote:

> Andrew Melnichenko <and...@daynix.com> writes:
>
> > Ping
> >
> > On Thu, Jul 16, 2020 at 6:26 AM <and...@daynix.com> wrote:
> >
> >> From: Andrew Melnychenko <and...@daynix.com>
> >>
> >> There is an issue, that netdev can't be removed if it was added using
> hmp.
> >> The bug appears after 08712fcb851034228b61f75bd922863a984a4f60 commit.
> >> It happens because of unclear QemuOpts that was created during
> >> hmp_netdev_add(), now it uses qmp analog function -
> >> qmp_marshal_netdev_add().
> >>
> >> Signed-off-by: Andrew Melnychenko <and...@daynix.com>
> >> ---
> >>  monitor/hmp-cmds.c | 15 +++------------
> >>  1 file changed, 3 insertions(+), 12 deletions(-)
> >>
> >> diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c
> >> index 2b0b58a336..b747935687 100644
> >> --- a/monitor/hmp-cmds.c
> >> +++ b/monitor/hmp-cmds.c
> >> @@ -1597,19 +1597,10 @@ void hmp_migrate(Monitor *mon, const QDict
> *qdict)
> >>  void hmp_netdev_add(Monitor *mon, const QDict *qdict)
> >>  {
> >>      Error *err = NULL;
> >> -    QemuOpts *opts;
> >> -
> >> -    opts = qemu_opts_from_qdict(qemu_find_opts("netdev"), qdict, &err);
> >> -    if (err) {
> >> -        goto out;
> >> -    }
> >> +    QDict *non_constant_dict = qdict_clone_shallow(qdict);
> >>
> >> -    netdev_add(opts, &err);
> >> -    if (err) {
> >> -        qemu_opts_del(opts);
> >> -    }
> >> -
> >> -out:
> >> +    qmp_marshal_netdev_add(non_constant_dict, NULL, &err);
> >> +    qobject_unref(non_constant_dict);
> >>      hmp_handle_error(mon, err);
> >>  }
>
> qmp_marshal_netdev_add() uses the QObject input visitor, which feels
> wrong for HMP input.
>
> What exactly is the problem you're trying to solve?  Can you show us a
> reproducer?
>
> The problem was found during work on hotplug/unplug problems with q35
run q35 VM with netdev and hotpluggable nic (virtio or e1000e)
unplug the nic (device_del)
delete the netdev ()
add netdev with the same id as before - fail (Duplicated ID)

Reply via email to