From patchwork Tue Aug 2 06:32:32 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?SsO8cmdlbiBHcm/Dnw==?= X-Patchwork-Id: 9255211 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 5AD6660754 for ; Tue, 2 Aug 2016 06:35:33 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4AC11284F2 for ; Tue, 2 Aug 2016 06:35:33 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3F50728504; Tue, 2 Aug 2016 06:35:33 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id CA0D2284F2 for ; Tue, 2 Aug 2016 06:35:32 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bUTFr-0001HB-EG; Tue, 02 Aug 2016 06:32:43 +0000 Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bUTFq-0001H5-JF for xen-devel@lists.xensource.com; Tue, 02 Aug 2016 06:32:42 +0000 Received: from [85.158.137.68] by server-3.bemta-3.messagelabs.com id ED/88-23620-98E30A75; Tue, 02 Aug 2016 06:32:41 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrLLMWRWlGSWpSXmKPExsVyuP0Ov26n3YJ wg0vbBCzuTXnP7sDosb1vF3sAYxRrZl5SfkUCa8azfftZC5rEK45uXsjWwLhZuIuRk0NCwEji 7cR/TF2MXBxCAgsZJW5umMEOkmATUJXYcP0UK4gtImApMWt9G5jNLJAjcf5wB1iNsEC4xK5b0 5lAbBag+jOTtjKC2LwC9hKHLlxjglggJ3F95nSmCYycCxgZVjGqF6cWlaUW6ZrpJRVlpmeU5C Zm5ugaGhjr5aYWFyemp+YkJhXrJefnbmIEequegYFxB+OVNudDjJIcTEqivC5f5ocL8SXlp1R mJBZnxBeV5qQWH2KU4eBQkuCttF0QLiRYlJqeWpGWmQMMG5i0BAePkgivBkiat7ggMbc4Mx0i dYpRUUqcVw0kIQCSyCjNg2uDheolRlkpYV5GBgYGIZ6C1KLczBJU+VeM4hyMSsK8+iBTeDLzS uCmvwJazAS0+IQB2OKSRISUVAPjAsfnJ38Ea81cefuMuqCiePrKpH7+d5VN5t1OOYsPcwk4tW 9WvlWnElpq9n+/TpnWA0f+9xfurBcRniJfXOj16zEHy7fO8rUPly54FL1TvFHjrtz/qaXXNQS +fQ5O2+fs8u3yX+ZNx1l4tflb/11Yk3bk+RP9PUcyHpn6Rs5ojHu+Mvn7xI56JZbijERDLeai 4kQA1l4+eFACAAA= X-Env-Sender: jgross@suse.com X-Msg-Ref: server-15.tower-31.messagelabs.com!1470119559!49573107!1 X-Originating-IP: [195.135.220.15] X-SpamReason: No, hits=0.0 required=7.0 tests= X-StarScan-Received: X-StarScan-Version: 8.77; banners=-,-,- X-VirusChecked: Checked Received: (qmail 15311 invoked from network); 2 Aug 2016 06:32:41 -0000 Received: from mx2.suse.de (HELO mx2.suse.de) (195.135.220.15) by server-15.tower-31.messagelabs.com with DHE-RSA-CAMELLIA256-SHA encrypted SMTP; 2 Aug 2016 06:32:41 -0000 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id E9922AC1E; Tue, 2 Aug 2016 06:32:36 +0000 (UTC) From: Juergen Gross To: qemu-devel@nongnu.org, xen-devel@lists.xensource.com Date: Tue, 2 Aug 2016 08:32:32 +0200 Message-Id: <1470119552-16170-1-git-send-email-jgross@suse.com> X-Mailer: git-send-email 2.6.6 Cc: anthony.perard@citrix.com, Juergen Gross , sstabellini@kernel.org, kraxel@redhat.com Subject: [Xen-devel] [PATCH] xen: use a common function for pv and hvm guest backend register calls X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" X-Virus-Scanned: ClamAV using ClamSMTP Instead of calling xen_be_register() for each supported backend type for hvm and pv guests in their machine init functions use a common function in order not to have to add new backends twice. This at once fixes the error that hvm domains couldn't use the qusb backend. Signed-off-by: Juergen Gross Acked-by: Anthony PERARD --- Is it on purpose the qnic and vfb backends are not registered for HVM? --- hw/xen/xen_backend.c | 10 ++++++++++ hw/xenpv/xen_machine_pv.c | 7 +------ include/hw/xen/xen_backend.h | 1 + xen-hvm.c | 4 +--- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/hw/xen/xen_backend.c b/hw/xen/xen_backend.c index bab79b1..1b88891 100644 --- a/hw/xen/xen_backend.c +++ b/hw/xen/xen_backend.c @@ -800,6 +800,16 @@ int xen_be_register(const char *type, struct XenDevOps *ops) return xenstore_scan(type, xen_domid, ops); } +void xen_be_register_common(void) +{ + xen_be_register("console", &xen_console_ops); + xen_be_register("vkbd", &xen_kbdmouse_ops); + xen_be_register("qdisk", &xen_blkdev_ops); +#ifdef CONFIG_USB_LIBUSB + xen_be_register("qusb", &xen_usb_ops); +#endif +} + int xen_be_bind_evtchn(struct XenDevice *xendev) { if (xendev->local_port != -1) { diff --git a/hw/xenpv/xen_machine_pv.c b/hw/xenpv/xen_machine_pv.c index 48f725c..79aef4e 100644 --- a/hw/xenpv/xen_machine_pv.c +++ b/hw/xenpv/xen_machine_pv.c @@ -67,14 +67,9 @@ static void xen_init_pv(MachineState *machine) break; } - xen_be_register("console", &xen_console_ops); - xen_be_register("vkbd", &xen_kbdmouse_ops); + xen_be_register_common(); xen_be_register("vfb", &xen_framebuffer_ops); - xen_be_register("qdisk", &xen_blkdev_ops); xen_be_register("qnic", &xen_netdev_ops); -#ifdef CONFIG_USB_LIBUSB - xen_be_register("qusb", &xen_usb_ops); -#endif /* configure framebuffer */ if (xenfb_enabled) { diff --git a/include/hw/xen/xen_backend.h b/include/hw/xen/xen_backend.h index 754c0a4..0df282a 100644 --- a/include/hw/xen/xen_backend.h +++ b/include/hw/xen/xen_backend.h @@ -87,6 +87,7 @@ void xen_be_check_state(struct XenDevice *xendev); /* xen backend driver bits */ int xen_be_init(void); +void xen_be_register_common(void); int xen_be_register(const char *type, struct XenDevOps *ops); int xen_be_set_state(struct XenDevice *xendev, enum xenbus_state state); int xen_be_bind_evtchn(struct XenDevice *xendev); diff --git a/xen-hvm.c b/xen-hvm.c index eb57792..3b0343a 100644 --- a/xen-hvm.c +++ b/xen-hvm.c @@ -1318,9 +1318,7 @@ void xen_hvm_init(PCMachineState *pcms, MemoryRegion **ram_memory) error_report("xen backend core setup failed"); goto err; } - xen_be_register("console", &xen_console_ops); - xen_be_register("vkbd", &xen_kbdmouse_ops); - xen_be_register("qdisk", &xen_blkdev_ops); + xen_be_register_common(); xen_read_physmap(state); return;