From nobody Sun May 19 01:15:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1490026278401160.7064858051807; Mon, 20 Mar 2017 09:11:18 -0700 (PDT) Received: from localhost ([::1]:33863 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cpzts-000703-Tq for importer@patchew.org; Mon, 20 Mar 2017 12:11:16 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45926) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cpzoJ-00036a-F3 for qemu-devel@nongnu.org; Mon, 20 Mar 2017 12:05:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cpznd-0000Pz-Jg for qemu-devel@nongnu.org; Mon, 20 Mar 2017 12:05:31 -0400 Received: from mx1.redhat.com ([209.132.183.28]:53078) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cpznd-0000Pk-72 for qemu-devel@nongnu.org; Mon, 20 Mar 2017 12:04:49 -0400 Received: from smtp.corp.redhat.com (int-mx16.intmail.prod.int.phx2.redhat.com [10.5.11.28]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 35F2575724 for ; Mon, 20 Mar 2017 16:04:49 +0000 (UTC) Received: from donizetti.redhat.com (ovpn-117-118.ams2.redhat.com [10.36.117.118]) by smtp.corp.redhat.com (Postfix) with ESMTP id E206A2D5C1; Mon, 20 Mar 2017 16:04:47 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 35F2575724 Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=pbonzini@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 35F2575724 From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Mon, 20 Mar 2017 17:04:43 +0100 Message-Id: <20170320160446.14643-2-pbonzini@redhat.com> In-Reply-To: <20170320160446.14643-1-pbonzini@redhat.com> References: <20170320160446.14643-1-pbonzini@redhat.com> X-Scanned-By: MIMEDefang 2.74 on 10.5.11.28 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Mon, 20 Mar 2017 16:04:49 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PULL 1/4] qemu-ga: obey LISTEN_PID when using systemd socket activation X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Richard W.M. Jones" , Stefan Hajnoczi Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" qemu-ga's socket activation support was not obeying the LISTEN_PID environment variable, which avoids that a process uses a socket-activation file descriptor meant for its parent. Mess can for example ensue if a process forks a children before consuming the socket-activation file descriptor and therefore setting O_CLOEXEC on it. Luckily, qemu-nbd also got socket activation code, and its copy does support LISTEN_PID. Some extra fixups are needed to ensure that the code can be used for both, but that's what this patch does. The main change is to replace get_listen_fds's "consume" argument with the FIRST_SOCKET_ACTIVATION_FD macro from the qemu-nbd code. Cc: "Richard W.M. Jones" Cc: Stefan Hajnoczi Reviewed-by: Daniel P. Berrange Signed-off-by: Paolo Bonzini --- include/qemu/systemd.h | 26 +++++++++++++ qemu-nbd.c | 100 ++++-----------------------------------------= ---- qga/main.c | 51 +++++++------------------ util/Makefile.objs | 1 + util/systemd.c | 77 +++++++++++++++++++++++++++++++++++++ 5 files changed, 125 insertions(+), 130 deletions(-) create mode 100644 include/qemu/systemd.h create mode 100644 util/systemd.c diff --git a/include/qemu/systemd.h b/include/qemu/systemd.h new file mode 100644 index 0000000..e6a877e --- /dev/null +++ b/include/qemu/systemd.h @@ -0,0 +1,26 @@ +/* + * systemd socket activation support + * + * Copyright 2017 Red Hat, Inc. and/or its affiliates + * + * Authors: + * Richard W.M. Jones + * + * This work is licensed under the terms of the GNU GPL, version 2 or late= r. + * See the COPYING file in the top-level directory. + */ + +#ifndef QEMU_SYSTEMD_H +#define QEMU_SYSTEMD_H 1 + +#define FIRST_SOCKET_ACTIVATION_FD 3 /* defined by systemd ABI */ + +/* + * Check if socket activation was requested via use of the + * LISTEN_FDS and LISTEN_PID environment variables. + * + * Returns 0 if no socket activation, or the number of FDs. + */ +unsigned int check_socket_activation(void); + +#endif diff --git a/qemu-nbd.c b/qemu-nbd.c index e4fede6..e080fb7 100644 --- a/qemu-nbd.c +++ b/qemu-nbd.c @@ -28,6 +28,7 @@ #include "qemu/config-file.h" #include "qemu/bswap.h" #include "qemu/log.h" +#include "qemu/systemd.h" #include "block/snapshot.h" #include "qapi/util.h" #include "qapi/qmp/qstring.h" @@ -474,98 +475,6 @@ static void setup_address_and_port(const char **addres= s, const char **port) } } =20 -#define FIRST_SOCKET_ACTIVATION_FD 3 /* defined by systemd ABI */ - -#ifndef _WIN32 -/* - * Check if socket activation was requested via use of the - * LISTEN_FDS and LISTEN_PID environment variables. - * - * Returns 0 if no socket activation, or the number of FDs. - */ -static unsigned int check_socket_activation(void) -{ - const char *s; - unsigned long pid; - unsigned long nr_fds; - unsigned int i; - int fd; - int err; - - s =3D getenv("LISTEN_PID"); - if (s =3D=3D NULL) { - return 0; - } - err =3D qemu_strtoul(s, NULL, 10, &pid); - if (err) { - if (verbose) { - fprintf(stderr, "malformed %s environment variable (ignored)\n= ", - "LISTEN_PID"); - } - return 0; - } - if (pid !=3D getpid()) { - if (verbose) { - fprintf(stderr, "%s was not for us (ignored)\n", - "LISTEN_PID"); - } - return 0; - } - - s =3D getenv("LISTEN_FDS"); - if (s =3D=3D NULL) { - return 0; - } - err =3D qemu_strtoul(s, NULL, 10, &nr_fds); - if (err) { - if (verbose) { - fprintf(stderr, "malformed %s environment variable (ignored)\n= ", - "LISTEN_FDS"); - } - return 0; - } - assert(nr_fds <=3D UINT_MAX); - - /* A limitation of current qemu-nbd is that it can only listen on - * a single socket. When that limitation is lifted, we can change - * this function to allow LISTEN_FDS > 1, and remove the assertion - * in the main function below. - */ - if (nr_fds > 1) { - error_report("qemu-nbd does not support socket activation with %s = > 1", - "LISTEN_FDS"); - exit(EXIT_FAILURE); - } - - /* So these are not passed to any child processes we might start. */ - unsetenv("LISTEN_FDS"); - unsetenv("LISTEN_PID"); - - /* So the file descriptors don't leak into child processes. */ - for (i =3D 0; i < nr_fds; ++i) { - fd =3D FIRST_SOCKET_ACTIVATION_FD + i; - if (fcntl(fd, F_SETFD, FD_CLOEXEC) =3D=3D -1) { - /* If we cannot set FD_CLOEXEC then it probably means the file - * descriptor is invalid, so socket activation has gone wrong - * and we should exit. - */ - error_report("Socket activation failed: " - "invalid file descriptor fd =3D %d: %m", - fd); - exit(EXIT_FAILURE); - } - } - - return (unsigned int) nr_fds; -} - -#else /* !_WIN32 */ -static unsigned int check_socket_activation(void) -{ - return 0; -} -#endif - /* * Check socket parameters compatibility when socket activation is used. */ @@ -892,6 +801,13 @@ int main(int argc, char **argv) error_report("%s", err_msg); exit(EXIT_FAILURE); } + + /* qemu-nbd can only listen on a single socket. */ + if (socket_activation > 1) { + error_report("qemu-nbd does not support socket activation with= %s > 1", + "LISTEN_FDS"); + exit(EXIT_FAILURE); + } } =20 if (tlscredsid) { diff --git a/qga/main.c b/qga/main.c index 92658bc..07c2953 100644 --- a/qga/main.c +++ b/qga/main.c @@ -29,6 +29,7 @@ #include "qemu/bswap.h" #include "qemu/help_option.h" #include "qemu/sockets.h" +#include "qemu/systemd.h" #ifdef _WIN32 #include "qga/service-win32.h" #include "qga/vss-win32.h" @@ -186,37 +187,6 @@ void reopen_fd_to_null(int fd) } #endif =20 -/** - * get_listen_fd: - * @consume: true to prevent future calls from succeeding - * - * Fetch a listen file descriptor that was passed via systemd socket - * activation. Use @consume to prevent child processes from thinking a fi= le - * descriptor was passed. - * - * Returns: file descriptor or -1 if no fd was passed - */ -static int get_listen_fd(bool consume) -{ -#ifdef _WIN32 - return -1; /* no fd passing expected, unsetenv(3) not available */ -#else - const char *listen_fds =3D getenv("LISTEN_FDS"); - int fd =3D STDERR_FILENO + 1; - - if (!listen_fds || strcmp(listen_fds, "1") !=3D 0) { - return -1; - } - - if (consume) { - unsetenv("LISTEN_FDS"); - } - - qemu_set_cloexec(fd); - return fd; -#endif /* !_WIN32 */ -} - static void usage(const char *cmd) { printf( @@ -1251,7 +1221,7 @@ static bool check_is_frozen(GAState *s) return false; } =20 -static int run_agent(GAState *s, GAConfig *config) +static int run_agent(GAState *s, GAConfig *config, int socket_activation) { ga_state =3D s; =20 @@ -1333,7 +1303,7 @@ static int run_agent(GAState *s, GAConfig *config) s->main_loop =3D g_main_loop_new(NULL, false); =20 if (!channel_init(ga_state, config->method, config->channel_path, - get_listen_fd(true))) { + socket_activation ? FIRST_SOCKET_ACTIVATION_FD : -1)= ) { g_critical("failed to initialize guest agent channel"); return EXIT_FAILURE; } @@ -1357,7 +1327,7 @@ int main(int argc, char **argv) int ret =3D EXIT_SUCCESS; GAState *s =3D g_new0(GAState, 1); GAConfig *config =3D g_new0(GAConfig, 1); - int listen_fd; + int socket_activation; =20 config->log_level =3D G_LOG_LEVEL_ERROR | G_LOG_LEVEL_CRITICAL; =20 @@ -1379,8 +1349,13 @@ int main(int argc, char **argv) config->method =3D g_strdup("virtio-serial"); } =20 - listen_fd =3D get_listen_fd(false); - if (listen_fd >=3D 0) { + socket_activation =3D check_socket_activation(); + if (socket_activation > 1) { + g_critical("qemu-ga only supports listening on one socket"); + ret =3D EXIT_FAILURE; + goto end; + } + if (socket_activation) { SocketAddress *addr; =20 g_free(config->method); @@ -1388,7 +1363,7 @@ int main(int argc, char **argv) config->method =3D NULL; config->channel_path =3D NULL; =20 - addr =3D socket_local_address(listen_fd, NULL); + addr =3D socket_local_address(FIRST_SOCKET_ACTIVATION_FD, NULL); if (addr) { if (addr->type =3D=3D SOCKET_ADDRESS_KIND_UNIX) { config->method =3D g_strdup("unix-listen"); @@ -1433,7 +1408,7 @@ int main(int argc, char **argv) goto end; } =20 - ret =3D run_agent(s, config); + ret =3D run_agent(s, config, socket_activation); =20 end: if (s->command_state) { diff --git a/util/Makefile.objs b/util/Makefile.objs index 06366b5..c6205eb 100644 --- a/util/Makefile.objs +++ b/util/Makefile.objs @@ -42,3 +42,4 @@ util-obj-y +=3D log.o util-obj-y +=3D qdist.o util-obj-y +=3D qht.o util-obj-y +=3D range.o +util-obj-y +=3D systemd.o diff --git a/util/systemd.c b/util/systemd.c new file mode 100644 index 0000000..d22e86c --- /dev/null +++ b/util/systemd.c @@ -0,0 +1,77 @@ +/* + * systemd socket activation support + * + * Copyright 2017 Red Hat, Inc. and/or its affiliates + * + * Authors: + * Richard W.M. Jones + * + * This work is licensed under the terms of the GNU GPL, version 2 or late= r. + * See the COPYING file in the top-level directory. + */ + +#include "qemu/osdep.h" +#include "qemu/systemd.h" +#include "qemu/cutils.h" +#include "qemu/error-report.h" + +#ifndef _WIN32 +unsigned int check_socket_activation(void) +{ + const char *s; + unsigned long pid; + unsigned long nr_fds; + unsigned int i; + int fd; + int err; + + s =3D getenv("LISTEN_PID"); + if (s =3D=3D NULL) { + return 0; + } + err =3D qemu_strtoul(s, NULL, 10, &pid); + if (err) { + return 0; + } + if (pid !=3D getpid()) { + return 0; + } + + s =3D getenv("LISTEN_FDS"); + if (s =3D=3D NULL) { + return 0; + } + err =3D qemu_strtoul(s, NULL, 10, &nr_fds); + if (err) { + return 0; + } + assert(nr_fds <=3D UINT_MAX); + + /* So these are not passed to any child processes we might start. */ + unsetenv("LISTEN_FDS"); + unsetenv("LISTEN_PID"); + + /* So the file descriptors don't leak into child processes. */ + for (i =3D 0; i < nr_fds; ++i) { + fd =3D FIRST_SOCKET_ACTIVATION_FD + i; + if (fcntl(fd, F_SETFD, FD_CLOEXEC) =3D=3D -1) { + /* If we cannot set FD_CLOEXEC then it probably means the file + * descriptor is invalid, so socket activation has gone wrong + * and we should exit. + */ + error_report("Socket activation failed: " + "invalid file descriptor fd =3D %d: %m", + fd); + exit(EXIT_FAILURE); + } + } + + return (unsigned int) nr_fds; +} + +#else /* !_WIN32 */ +unsigned int check_socket_activation(void) +{ + return 0; +} +#endif --=20 2.9.3 From nobody Sun May 19 01:15:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1490026295835726.4762149408143; Mon, 20 Mar 2017 09:11:35 -0700 (PDT) Received: from localhost ([::1]:33864 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cpzuA-0007BQ-Fx for importer@patchew.org; Mon, 20 Mar 2017 12:11:34 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45911) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cpzoH-00034h-6e for qemu-devel@nongnu.org; Mon, 20 Mar 2017 12:05:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cpznf-0000QR-Mk for qemu-devel@nongnu.org; Mon, 20 Mar 2017 12:05:29 -0400 Received: from mx1.redhat.com ([209.132.183.28]:61178) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cpznf-0000QB-CB for qemu-devel@nongnu.org; Mon, 20 Mar 2017 12:04:51 -0400 Received: from smtp.corp.redhat.com (int-mx16.intmail.prod.int.phx2.redhat.com [10.5.11.28]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 4F1EC6AAE4; Mon, 20 Mar 2017 16:04:51 +0000 (UTC) Received: from donizetti.redhat.com (ovpn-117-118.ams2.redhat.com [10.36.117.118]) by smtp.corp.redhat.com (Postfix) with ESMTP id 886F22D5C1; Mon, 20 Mar 2017 16:04:49 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 4F1EC6AAE4 Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=pbonzini@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 4F1EC6AAE4 From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Mon, 20 Mar 2017 17:04:44 +0100 Message-Id: <20170320160446.14643-3-pbonzini@redhat.com> In-Reply-To: <20170320160446.14643-1-pbonzini@redhat.com> References: <20170320160446.14643-1-pbonzini@redhat.com> X-Scanned-By: MIMEDefang 2.74 on 10.5.11.28 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Mon, 20 Mar 2017 16:04:51 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PULL 2/4] xen: do not build backends for targets that do not support xen X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, Stefano Stabellini , Stefano Stabellini , stefanha@redhat.com, pbonzini@redhat.com, rth@twiddle.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Stefano Stabellini Change Makefile.objs to use CONFIG_XEN instead of CONFIG_XEN_BACKEND, so that the Xen backends are only built for targets that support Xen. Set CONFIG_XEN in the toplevel Makefile to ensure that files that are built only once pick up Xen support properly. Signed-off-by: Stefano Stabellini Tested-by: Greg Kurz Reviewed-by: Greg Kurz CC: pbonzini@redhat.com CC: peter.maydell@linaro.org CC: rth@twiddle.net CC: stefanha@redhat.com Message-Id: <1489694518-16978-1-git-send-email-sstabellini@kernel.org> Signed-off-by: Paolo Bonzini --- Makefile | 1 + hw/block/Makefile.objs | 2 +- hw/char/Makefile.objs | 2 +- hw/display/Makefile.objs | 2 +- hw/net/Makefile.objs | 2 +- hw/usb/Makefile.objs | 2 +- hw/xen/Makefile.objs | 2 +- 7 files changed, 7 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 73e0c12..f4f90df 100644 --- a/Makefile +++ b/Makefile @@ -26,6 +26,7 @@ endif =20 CONFIG_SOFTMMU :=3D $(if $(filter %-softmmu,$(TARGET_DIRS)),y) CONFIG_USER_ONLY :=3D $(if $(filter %-user,$(TARGET_DIRS)),y) +CONFIG_XEN :=3D $(CONFIG_XEN_BACKEND) CONFIG_ALL=3Dy -include config-all-devices.mak -include config-all-disas.mak diff --git a/hw/block/Makefile.objs b/hw/block/Makefile.objs index d4c3ab7..e0ed980 100644 --- a/hw/block/Makefile.objs +++ b/hw/block/Makefile.objs @@ -4,7 +4,7 @@ common-obj-$(CONFIG_SSI_M25P80) +=3D m25p80.o common-obj-$(CONFIG_NAND) +=3D nand.o common-obj-$(CONFIG_PFLASH_CFI01) +=3D pflash_cfi01.o common-obj-$(CONFIG_PFLASH_CFI02) +=3D pflash_cfi02.o -common-obj-$(CONFIG_XEN_BACKEND) +=3D xen_disk.o +common-obj-$(CONFIG_XEN) +=3D xen_disk.o common-obj-$(CONFIG_ECC) +=3D ecc.o common-obj-$(CONFIG_ONENAND) +=3D onenand.o common-obj-$(CONFIG_NVME_PCI) +=3D nvme.o diff --git a/hw/char/Makefile.objs b/hw/char/Makefile.objs index 6ea76fe..725fdc4 100644 --- a/hw/char/Makefile.objs +++ b/hw/char/Makefile.objs @@ -7,7 +7,7 @@ common-obj-$(CONFIG_SERIAL_ISA) +=3D serial-isa.o common-obj-$(CONFIG_SERIAL_PCI) +=3D serial-pci.o common-obj-$(CONFIG_VIRTIO) +=3D virtio-console.o common-obj-$(CONFIG_XILINX) +=3D xilinx_uartlite.o -common-obj-$(CONFIG_XEN_BACKEND) +=3D xen_console.o +common-obj-$(CONFIG_XEN) +=3D xen_console.o common-obj-$(CONFIG_CADENCE) +=3D cadence_uart.o =20 obj-$(CONFIG_EXYNOS4) +=3D exynos4210_uart.o diff --git a/hw/display/Makefile.objs b/hw/display/Makefile.objs index 063889b..3d02e8b 100644 --- a/hw/display/Makefile.objs +++ b/hw/display/Makefile.objs @@ -5,7 +5,7 @@ common-obj-$(CONFIG_JAZZ_LED) +=3D jazz_led.o common-obj-$(CONFIG_PL110) +=3D pl110.o common-obj-$(CONFIG_SSD0303) +=3D ssd0303.o common-obj-$(CONFIG_SSD0323) +=3D ssd0323.o -common-obj-$(CONFIG_XEN_BACKEND) +=3D xenfb.o +common-obj-$(CONFIG_XEN) +=3D xenfb.o =20 common-obj-$(CONFIG_VGA_PCI) +=3D vga-pci.o common-obj-$(CONFIG_VGA_ISA) +=3D vga-isa.o diff --git a/hw/net/Makefile.objs b/hw/net/Makefile.objs index 610ed3e..6a95d92 100644 --- a/hw/net/Makefile.objs +++ b/hw/net/Makefile.objs @@ -1,5 +1,5 @@ common-obj-$(CONFIG_DP8393X) +=3D dp8393x.o -common-obj-$(CONFIG_XEN_BACKEND) +=3D xen_nic.o +common-obj-$(CONFIG_XEN) +=3D xen_nic.o =20 # PCI network cards common-obj-$(CONFIG_NE2000_PCI) +=3D ne2000.o diff --git a/hw/usb/Makefile.objs b/hw/usb/Makefile.objs index 98b5c9d..5958be8 100644 --- a/hw/usb/Makefile.objs +++ b/hw/usb/Makefile.objs @@ -40,5 +40,5 @@ common-obj-$(CONFIG_USB_REDIR) +=3D redirect.o quirks.o common-obj-y +=3D $(patsubst %,host-%.o,$(HOST_USB)) =20 ifeq ($(CONFIG_USB_LIBUSB),y) -common-obj-$(CONFIG_XEN_BACKEND) +=3D xen-usb.o +common-obj-$(CONFIG_XEN) +=3D xen-usb.o endif diff --git a/hw/xen/Makefile.objs b/hw/xen/Makefile.objs index 591cdc2..4be3ec9 100644 --- a/hw/xen/Makefile.objs +++ b/hw/xen/Makefile.objs @@ -1,5 +1,5 @@ # xen backend driver support -common-obj-$(CONFIG_XEN_BACKEND) +=3D xen_backend.o xen_devconfig.o xen_pv= dev.o +common-obj-$(CONFIG_XEN) +=3D xen_backend.o xen_devconfig.o xen_pvdev.o =20 obj-$(CONFIG_XEN_PCI_PASSTHROUGH) +=3D xen-host-pci-device.o obj-$(CONFIG_XEN_PCI_PASSTHROUGH) +=3D xen_pt.o xen_pt_config_init.o xen_p= t_graphics.o xen_pt_msi.o --=20 2.9.3 From nobody Sun May 19 01:15:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1490026200777767.0003911573081; Mon, 20 Mar 2017 09:10:00 -0700 (PDT) Received: from localhost ([::1]:33852 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cpzsd-0005qU-Eg for importer@patchew.org; Mon, 20 Mar 2017 12:09:59 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45838) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cpzoD-00030j-Fx for qemu-devel@nongnu.org; Mon, 20 Mar 2017 12:05:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cpzng-0000Qb-Ge for qemu-devel@nongnu.org; Mon, 20 Mar 2017 12:05:25 -0400 Received: from mx1.redhat.com ([209.132.183.28]:44108) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cpzng-0000QP-9Y for qemu-devel@nongnu.org; Mon, 20 Mar 2017 12:04:52 -0400 Received: from smtp.corp.redhat.com (int-mx16.intmail.prod.int.phx2.redhat.com [10.5.11.28]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 45B388049A for ; Mon, 20 Mar 2017 16:04:52 +0000 (UTC) Received: from donizetti.redhat.com (ovpn-117-118.ams2.redhat.com [10.36.117.118]) by smtp.corp.redhat.com (Postfix) with ESMTP id A14E42D5C1 for ; Mon, 20 Mar 2017 16:04:51 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 45B388049A Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=pbonzini@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 45B388049A From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Mon, 20 Mar 2017 17:04:45 +0100 Message-Id: <20170320160446.14643-4-pbonzini@redhat.com> In-Reply-To: <20170320160446.14643-1-pbonzini@redhat.com> References: <20170320160446.14643-1-pbonzini@redhat.com> X-Scanned-By: MIMEDefang 2.74 on 10.5.11.28 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Mon, 20 Mar 2017 16:04:52 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PULL 3/4] configure: remove Cygwin X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" The Cygwin target is really compiling for native Win32 with -mno-cygwin. Except, GCC 4.7.0 has finally removed the long deprecated -mno-cygwin option, and that happened about five years ago. Let it rest in peace. Signed-off-by: Paolo Bonzini --- bsd-user/mmap.c | 5 ----- configure | 6 ------ 2 files changed, 11 deletions(-) diff --git a/bsd-user/mmap.c b/bsd-user/mmap.c index ee59073..1ad018a 100644 --- a/bsd-user/mmap.c +++ b/bsd-user/mmap.c @@ -199,12 +199,7 @@ static int mmap_frag(abi_ulong real_start, return 0; } =20 -#if defined(__CYGWIN__) -/* Cygwin doesn't have a whole lot of address space. */ -static abi_ulong mmap_next_start =3D 0x18000000; -#else static abi_ulong mmap_next_start =3D 0x40000000; -#endif =20 unsigned long last_brk; =20 diff --git a/configure b/configure index 99d8bec..b9a30cf 100755 --- a/configure +++ b/configure @@ -553,12 +553,6 @@ fi HOST_VARIANT_DIR=3D"" =20 case $targetos in -CYGWIN*) - mingw32=3D"yes" - QEMU_CFLAGS=3D"-mno-cygwin $QEMU_CFLAGS" - audio_possible_drivers=3D"sdl" - audio_drv_list=3D"sdl" -;; MINGW32*) mingw32=3D"yes" hax=3D"yes" --=20 2.9.3 From nobody Sun May 19 01:15:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1490026085752528.8196972808508; Mon, 20 Mar 2017 09:08:05 -0700 (PDT) Received: from localhost ([::1]:33842 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cpzqm-0004Ol-Bg for importer@patchew.org; Mon, 20 Mar 2017 12:08:04 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45842) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cpzoD-00030l-Ij for qemu-devel@nongnu.org; Mon, 20 Mar 2017 12:05:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cpznh-0000Qt-Oy for qemu-devel@nongnu.org; Mon, 20 Mar 2017 12:05:25 -0400 Received: from mx1.redhat.com ([209.132.183.28]:46067) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cpznh-0000Qi-Hb for qemu-devel@nongnu.org; Mon, 20 Mar 2017 12:04:53 -0400 Received: from smtp.corp.redhat.com (int-mx16.intmail.prod.int.phx2.redhat.com [10.5.11.28]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 67AADC04BD2E; Mon, 20 Mar 2017 16:04:53 +0000 (UTC) Received: from donizetti.redhat.com (ovpn-117-118.ams2.redhat.com [10.36.117.118]) by smtp.corp.redhat.com (Postfix) with ESMTP id 954EE2D5C1; Mon, 20 Mar 2017 16:04:52 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 67AADC04BD2E Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=pbonzini@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 67AADC04BD2E From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Mon, 20 Mar 2017 17:04:46 +0100 Message-Id: <20170320160446.14643-5-pbonzini@redhat.com> In-Reply-To: <20170320160446.14643-1-pbonzini@redhat.com> References: <20170320160446.14643-1-pbonzini@redhat.com> X-Scanned-By: MIMEDefang 2.74 on 10.5.11.28 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Mon, 20 Mar 2017 16:04:53 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PULL 4/4] hax: fix breakage in locking X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Vincent Palatin Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Vincent Palatin use qemu_mutex_lock_iothread consistently in qemu_hax_cpu_thread_fn() as done in other _thread_fn functions, instead of grabbing directly the BQL. This way we ensure that iothread_locked is properly set. On v2.9.0-rc0, QEMU was dying in an assertion in the mutex code when running with '--enable-hax' either on OSX or Windows. This bug was triggered since the code modification for multithreading added new usages of qemu_mutex_iothread_locked. This fixes the breakage on both platforms, I can now run again a full Chromium OS image with HAX kernel acceleration. Signed-off-by: Vincent Palatin Message-Id: <20170320101549.150076-1-vpalatin@chromium.org> Signed-off-by: Paolo Bonzini --- cpus.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cpus.c b/cpus.c index b84a392..167d961 100644 --- a/cpus.c +++ b/cpus.c @@ -1344,8 +1344,9 @@ static void *qemu_hax_cpu_thread_fn(void *arg) { CPUState *cpu =3D arg; int r; + + qemu_mutex_lock_iothread(); qemu_thread_get_self(cpu->thread); - qemu_mutex_lock(&qemu_global_mutex); =20 cpu->thread_id =3D qemu_get_thread_id(); cpu->created =3D true; --=20 2.9.3