From patchwork Mon Nov 7 15:32:00 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Roger_Pau_Monn=C3=A9?= X-Patchwork-Id: 9415399 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 779C460720 for ; Mon, 7 Nov 2016 15:34:39 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6B76A28B09 for ; Mon, 7 Nov 2016 15:34:39 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6068228B56; Mon, 7 Nov 2016 15:34:39 +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 0539F28B36 for ; Mon, 7 Nov 2016 15:34:39 +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 1c3lua-0003Z7-Bo; Mon, 07 Nov 2016 15:32:40 +0000 Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1c3luY-0003Y2-Ue for xen-devel@lists.xenproject.org; Mon, 07 Nov 2016 15:32:39 +0000 Received: from [85.158.143.35] by server-11.bemta-6.messagelabs.com id E6/60-14466-69E90285; Mon, 07 Nov 2016 15:32:38 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrJIsWRWlGSWpSXmKPExsXitHRDpO7UeQo RBv/2WVh83zKZyYHR4/CHKywBjFGsmXlJ+RUJrBl/7rQzFUzmrdg2q4u5gbGfq4uRk0NCwF9i 6fQWJhCbTUBH4uLcnWwgtohAocSX1X8Zuxi5OJgFLjFK7Fr9ih0kISyQJPFm7S5WEJtFQEXiz +QbjCA2r4CLxOz3Z1kghupKPDz3G6yGU8BV4uTFDiCbg0MIqGZRmypEuaDEyZlPwMqZBTQlWr f/Zoew5SWat85mBrGFBBQl+uc9YIMYyS1x+/RU5gmM/LOQtM9C0j4LSfsCRuZVjBrFqUVlqUW 6hqZ6SUWZ6RkluYmZObqGBmZ6uanFxYnpqTmJScV6yfm5mxiBQcgABDsYvy0LOMQoycGkJMr7 YpZChBBfUn5KZUZicUZ8UWlOavEhRhkODiUJ3tdzgXKCRanpqRVpmTnAeIBJS3DwKInwKgBjQ oi3uCAxtzgzHSJ1ilFRSpz3HkifAEgiozQPrg0Wg5cYZaWEeRmBDhHiKUgtys0sQZV/xSjOwa gkzHsGZApPZl4J3PRXQIuZgBZXxYAtLklESEk1MLo+9YlQb7N5cDjsa77IQrZZ69aGbo9b/ud C183v61P9Iv5znmOeqMT68MAqjauLXhv2ifEebj6hw++W9os/NWTDI3EOIe8dCzrmCblP0k31 K7E5MmHXdNaIP07HVizuOLjDjm2ufLbFQkXNvev+rHf4XJNjban2cQpXa/ac8qYpR87Fr/tld 1eJpTgj0VCLuag4EQAnmrqovAIAAA== X-Env-Sender: prvs=112111e9c=roger.pau@citrix.com X-Msg-Ref: server-5.tower-21.messagelabs.com!1478532755!34103278!2 X-Originating-IP: [66.165.176.89] X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n, received_headers: No Received headers X-StarScan-Received: X-StarScan-Version: 9.0.13; banners=-,-,- X-VirusChecked: Checked Received: (qmail 54743 invoked from network); 7 Nov 2016 15:32:37 -0000 Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89) by server-5.tower-21.messagelabs.com with RC4-SHA encrypted SMTP; 7 Nov 2016 15:32:37 -0000 X-IronPort-AV: E=Sophos;i="5.31,606,1473120000"; d="scan'208";a="388190230" From: Roger Pau Monne To: , Andrew Cooper , Jan Beulich Date: Mon, 7 Nov 2016 16:32:00 +0100 Message-ID: <1478532721-20160-2-git-send-email-roger.pau@citrix.com> X-Mailer: git-send-email 2.7.4 (Apple Git-66) In-Reply-To: <1478532721-20160-1-git-send-email-roger.pau@citrix.com> References: <1478532721-20160-1-git-send-email-roger.pau@citrix.com> MIME-Version: 1.0 X-DLP: MIA2 Cc: Wei Liu , Boris Ostrovsky , Ian Jackson , Roger Pau Monne Subject: [Xen-devel] [PATCH v2 for-4.8 1/2] libxc: properly account for the page offset when copying ACPI data 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: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" X-Virus-Scanned: ClamAV using ClamSMTP Or else ACPI data is always copied at the start of the page pointed by guest_addr_out, ignoring the page offset. Signed-off-by: Roger Pau Monné Reviewed-by: Andrew Cooper --- Cc: Ian Jackson Cc: Wei Liu Cc: Boris Ostrovsky Cc: Konrad Rzeszutek Wilk --- Changes since v1: - Also fix the calculation of the required number of pages so that the offset is taken into account. --- tools/libxc/xc_dom_core.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tools/libxc/xc_dom_core.c b/tools/libxc/xc_dom_core.c index e177667..ad819dd 100644 --- a/tools/libxc/xc_dom_core.c +++ b/tools/libxc/xc_dom_core.c @@ -1090,8 +1090,9 @@ static int xc_dom_load_acpi(struct xc_dom_image *dom) dom->acpi_modules[i].length, dom->acpi_modules[i].guest_addr_out); - num_pages = (dom->acpi_modules[i].length + (XC_PAGE_SIZE - 1)) >> - XC_PAGE_SHIFT; + num_pages = (dom->acpi_modules[i].length + + (dom->acpi_modules[i].guest_addr_out & ~XC_PAGE_MASK) + + (XC_PAGE_SIZE - 1)) >> XC_PAGE_SHIFT; extents = malloc(num_pages * sizeof(*extents)); if ( !extents ) { @@ -1118,6 +1119,9 @@ static int xc_dom_load_acpi(struct xc_dom_image *dom) goto err; } + ptr = (uint8_t *)ptr + + (dom->acpi_modules[i].guest_addr_out & ~XC_PAGE_MASK); + memcpy(ptr, dom->acpi_modules[i].data, dom->acpi_modules[i].length); munmap(ptr, XC_PAGE_SIZE * num_pages);