From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:46633) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TOrpP-0000ow-Jc for qemu-devel@nongnu.org; Thu, 18 Oct 2012 11:16:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TOrpJ-0000Cp-No for qemu-devel@nongnu.org; Thu, 18 Oct 2012 11:16:07 -0400 Received: from mail-pb0-f45.google.com ([209.85.160.45]:36243) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TOrpJ-0000Ch-Go for qemu-devel@nongnu.org; Thu, 18 Oct 2012 11:16:01 -0400 Received: by mail-pb0-f45.google.com with SMTP id rp2so8515848pbb.4 for ; Thu, 18 Oct 2012 08:16:00 -0700 (PDT) Sender: Paolo Bonzini Message-ID: <50801D29.2080305@redhat.com> Date: Thu, 18 Oct 2012 17:15:53 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <1350479712-15082-1-git-send-email-otubo@linux.vnet.ibm.com> <1350479712-15082-4-git-send-email-otubo@linux.vnet.ibm.com> In-Reply-To: <1350479712-15082-4-git-send-email-otubo@linux.vnet.ibm.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 4/4] Warning messages on net devices hotplug List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eduardo Otubo Cc: pmoore@redhat.com, aliguori@us.ibm.com, coreyb@linux.vnet.ibm.com, qemu-devel@nongnu.org Il 17/10/2012 15:15, Eduardo Otubo ha scritto: > With the inclusion of the new "double whitelist" seccomp filter, Qemu > won't be able to execve() in runtime, thus, no hotplug net devices > allowed. > > Signed-off-by: Eduardo Otubo Please check this in net_init_tap instead. When using libvirt, hotplug is done with a completely different mechanism that involves file-descriptor passing and does not require executing a helper. Paolo > --- > hmp.c | 6 ++++++ > net.c | 13 +++++++++++++ > 2 files changed, 19 insertions(+) > > diff --git a/hmp.c b/hmp.c > index 70bdec2..f258338 100644 > --- a/hmp.c > +++ b/hmp.c > @@ -1091,6 +1091,12 @@ void hmp_netdev_add(Monitor *mon, const QDict *qdict) > Error *err = NULL; > QemuOpts *opts; > > +#ifdef CONFIG_SECCOMP > + error_set(&err, ERROR_CLASS_GENERIC_ERROR, > + "Cannot hotplug TAP device when -sandbox is in effect"); > + goto out; > +#endif > + > opts = qemu_opts_from_qdict(qemu_find_opts("netdev"), qdict, &err); > if (error_is_set(&err)) { > goto out; > diff --git a/net.c b/net.c > index ae4bc0d..a652ee9 100644 > --- a/net.c > +++ b/net.c > @@ -752,6 +752,12 @@ void net_host_device_add(Monitor *mon, const QDict *qdict) > Error *local_err = NULL; > QemuOpts *opts; > > +#ifdef CONFIG_SECCOMP > + error_set(&local_err, ERROR_CLASS_GENERIC_ERROR, > + "Cannot hotplug TAP device when -sandbox is in effect"); > + goto out; > +#endif > + > if (!net_host_check_device(device)) { > monitor_printf(mon, "invalid host network device %s\n", device); > return; > @@ -765,6 +771,7 @@ void net_host_device_add(Monitor *mon, const QDict *qdict) > qemu_opt_set(opts, "type", device); > > net_client_init(opts, 0, &local_err); > +out: > if (error_is_set(&local_err)) { > qerror_report_err(local_err); > error_free(local_err); > @@ -800,6 +807,12 @@ int qmp_netdev_add(Monitor *mon, const QDict *qdict, QObject **ret) > QemuOptsList *opts_list; > QemuOpts *opts; > > +#ifdef CONFIG_SECCOMP > + error_set(&local_err, ERROR_CLASS_GENERIC_ERROR, > + "Cannot hotplug TAP device when -sandbox is in effect"); > + goto exit_err; > +#endif > + > opts_list = qemu_find_opts_err("netdev", &local_err); > if (error_is_set(&local_err)) { > goto exit_err; >