All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] Make netdev_del delete the netdev even when it's in use
@ 2010-06-11 12:21 Markus Armbruster
  2010-06-14 16:27 ` Anthony Liguori
  0 siblings, 1 reply; 2+ messages in thread
From: Markus Armbruster @ 2010-06-11 12:21 UTC (permalink / raw)
  To: qemu-devel

To hot-unplug guest and host part of a network device, you do:

    device_del NIC-ID
    netdev_del NETDEV-ID

For PCI devices, device_del merely tells ACPI to unplug the device.
The device goes away for real only after the guest processed the ACPI
unplug event.

You have to wait until then (e.g. by polling info pci) before you can
unplug the netdev.  Not good.

Fix by removing the "in use" check from do_netdev_del().  Deleting a
netdev while it's in use is safe; packets simply get routed to the bit
bucket.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
I can add a force option instead, if you think that's better.

 net.c |    4 ----
 1 files changed, 0 insertions(+), 4 deletions(-)

diff --git a/net.c b/net.c
index 4cb93ed..0703698 100644
--- a/net.c
+++ b/net.c
@@ -1221,10 +1221,6 @@ int do_netdev_del(Monitor *mon, const QDict *qdict, QObject **ret_data)
         qerror_report(QERR_DEVICE_NOT_FOUND, id);
         return -1;
     }
-    if (vc->peer) {
-        qerror_report(QERR_DEVICE_IN_USE, id);
-        return -1;
-    }
     qemu_del_vlan_client(vc);
     qemu_opts_del(qemu_opts_find(&qemu_netdev_opts, id));
     return 0;
-- 
1.6.6.1

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [Qemu-devel] [PATCH] Make netdev_del delete the netdev even when it's in use
  2010-06-11 12:21 [Qemu-devel] [PATCH] Make netdev_del delete the netdev even when it's in use Markus Armbruster
@ 2010-06-14 16:27 ` Anthony Liguori
  0 siblings, 0 replies; 2+ messages in thread
From: Anthony Liguori @ 2010-06-14 16:27 UTC (permalink / raw)
  To: Markus Armbruster; +Cc: qemu-devel

On 06/11/2010 07:21 AM, Markus Armbruster wrote:
> To hot-unplug guest and host part of a network device, you do:
>
>      device_del NIC-ID
>      netdev_del NETDEV-ID
>
> For PCI devices, device_del merely tells ACPI to unplug the device.
> The device goes away for real only after the guest processed the ACPI
> unplug event.
>
> You have to wait until then (e.g. by polling info pci) before you can
> unplug the netdev.  Not good.
>
> Fix by removing the "in use" check from do_netdev_del().  Deleting a
> netdev while it's in use is safe; packets simply get routed to the bit
> bucket.
>
> Signed-off-by: Markus Armbruster<armbru@redhat.com>
>    

Applied.  Thanks.

Regards,

Anthony Liguori
> ---
> I can add a force option instead, if you think that's better.
>
>   net.c |    4 ----
>   1 files changed, 0 insertions(+), 4 deletions(-)
>
> diff --git a/net.c b/net.c
> index 4cb93ed..0703698 100644
> --- a/net.c
> +++ b/net.c
> @@ -1221,10 +1221,6 @@ int do_netdev_del(Monitor *mon, const QDict *qdict, QObject **ret_data)
>           qerror_report(QERR_DEVICE_NOT_FOUND, id);
>           return -1;
>       }
> -    if (vc->peer) {
> -        qerror_report(QERR_DEVICE_IN_USE, id);
> -        return -1;
> -    }
>       qemu_del_vlan_client(vc);
>       qemu_opts_del(qemu_opts_find(&qemu_netdev_opts, id));
>       return 0;
>    

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2010-06-14 16:27 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-06-11 12:21 [Qemu-devel] [PATCH] Make netdev_del delete the netdev even when it's in use Markus Armbruster
2010-06-14 16:27 ` Anthony Liguori

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.