Message ID | 1473066662-4167-1-git-send-email-shmulik.ladkani@ravellosystems.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, 5 Sep 2016 12:11:02 +0300 Shmulik Ladkani <shmulik.ladkani@gmail.com> wrote: > Upon hmp_host_net_remove(), the appropriate -net client is deleted > (according to the given vlan_id and device id), as well as the > corresponsing hub port. > > However, the relevant '-net' option that was added by former > hmp_host_net_add() call is still present in "net" options group. > > This makes the following legit HMP sequence erroneous: > > (qemu) host_net_add tap id=n1,ifname=tap1,script=no,downscript=no,vlan=1 > (qemu) host_net_remove 1 n1 > (qemu) host_net_add tap id=n1,ifname=tap1,script=no,downscript=no,vlan=1 > Duplicate ID 'n1' for net > > Fix, by deleting the stored '-net' option associated with the given > device id. > > Signed-off-by: Shmulik Ladkani <shmulik.ladkani@ravellosystems.com> ping?
On 2016年09月05日 17:11, Shmulik Ladkani wrote: > Upon hmp_host_net_remove(), the appropriate -net client is deleted > (according to the given vlan_id and device id), as well as the > corresponsing hub port. > > However, the relevant '-net' option that was added by former > hmp_host_net_add() call is still present in "net" options group. > > This makes the following legit HMP sequence erroneous: > > (qemu) host_net_add tap id=n1,ifname=tap1,script=no,downscript=no,vlan=1 > (qemu) host_net_remove 1 n1 > (qemu) host_net_add tap id=n1,ifname=tap1,script=no,downscript=no,vlan=1 > Duplicate ID 'n1' for net > > Fix, by deleting the stored '-net' option associated with the given > device id. > > Signed-off-by: Shmulik Ladkani <shmulik.ladkani@ravellosystems.com> > --- > net/net.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/net/net.c b/net/net.c > index d51cb29882..0bec096d75 100644 > --- a/net/net.c > +++ b/net/net.c > @@ -1179,6 +1179,7 @@ void hmp_host_net_remove(Monitor *mon, const QDict *qdict) > > qemu_del_net_client(nc->peer); > qemu_del_net_client(nc); > + qemu_opts_del(qemu_opts_find(qemu_find_opts("net"), device)); > } > > void netdev_add(QemuOpts *opts, Error **errp) Applied, thanks.
diff --git a/net/net.c b/net/net.c index d51cb29882..0bec096d75 100644 --- a/net/net.c +++ b/net/net.c @@ -1179,6 +1179,7 @@ void hmp_host_net_remove(Monitor *mon, const QDict *qdict) qemu_del_net_client(nc->peer); qemu_del_net_client(nc); + qemu_opts_del(qemu_opts_find(qemu_find_opts("net"), device)); } void netdev_add(QemuOpts *opts, Error **errp)
Upon hmp_host_net_remove(), the appropriate -net client is deleted (according to the given vlan_id and device id), as well as the corresponsing hub port. However, the relevant '-net' option that was added by former hmp_host_net_add() call is still present in "net" options group. This makes the following legit HMP sequence erroneous: (qemu) host_net_add tap id=n1,ifname=tap1,script=no,downscript=no,vlan=1 (qemu) host_net_remove 1 n1 (qemu) host_net_add tap id=n1,ifname=tap1,script=no,downscript=no,vlan=1 Duplicate ID 'n1' for net Fix, by deleting the stored '-net' option associated with the given device id. Signed-off-by: Shmulik Ladkani <shmulik.ladkani@ravellosystems.com> --- net/net.c | 1 + 1 file changed, 1 insertion(+)