From patchwork Wed May 31 13:03:57 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Julien Grall X-Patchwork-Id: 100744 Delivered-To: patch@linaro.org Received: by 10.182.202.35 with SMTP id kf3csp290388obc; Wed, 31 May 2017 06:04:07 -0700 (PDT) X-Received: by 10.84.224.66 with SMTP id a2mr87973223plt.191.1496235847704; Wed, 31 May 2017 06:04:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1496235847; cv=none; d=google.com; s=arc-20160816; b=bQrSOAKUFe07yLHT+1ShgK7LC29h2hbNX5YTsjBHTD5Wdg2bGPgE3l752h2XOqob8w Gy/ztOfgCLZAPy7Ze2Z5jRtF4tLy3H/0TSjZAEtomHUZpB3hNol+StuSjLvPMpPEDZR3 rlILh5bEwopkM62m5C7fjEWhqNc1Y9GgE2DNalyBqHUfwN4EBTJliVrGK6DUeF/oRrE3 oETCbo5vEJY1wdo7kxIDc4GgCaJJ/8itGI/DGU2wYSS6lRE9jLFrFFLJqiNhGQu4WVvr PNJUOBbZi+chR+Cao8SYu7XQGbWgLmiaQ0WVq5BqTqUBDLEHkbFrotftnhwfUowCtyrb apnA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=/w2UWr2+heaTpi0Tb3tQb4w6rjYXCSfSEnBbUzAB8Ks=; b=AGi6VEUjst1y3p4k+/HqrkFQ7ffl7i+6YnXRbqHtiYNsdAqotGtulcnIyw7vqPaeVq UmCwAFjw6jccwtyw/J+sYeyJQxhJ9d2VcFf1QkgpzSaLHQCc/di4FxvuJPVw5t2Poc8q 476UneG29Op1SppB1QJ5wx/Y3plJMPZacutelUZmMaQAyKPNaXqZeeUmbMYkORj6vYGQ LNDrSxiT9H6FOO6TJlyZ52dpvt3lNsvHVvq5e0lgPFWPjNF3+14qh/e8zMON8OHMGYpk T17S1DF1bViaDsKy3oo/DMOKGMt5u8oDd919WGtJ83imaLvebYpYEbj4T7JKrDXFhuV6 hWbw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 1si16488313pgu.95.2017.05.31.06.04.07; Wed, 31 May 2017 06:04:07 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751030AbdEaNEG (ORCPT + 6 others); Wed, 31 May 2017 09:04:06 -0400 Received: from foss.arm.com ([217.140.101.70]:43858 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751011AbdEaNEF (ORCPT ); Wed, 31 May 2017 09:04:05 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 355DF2B; Wed, 31 May 2017 06:04:05 -0700 (PDT) Received: from e108454-lin.cambridge.arm.com (e108454-lin.cambridge.arm.com [10.1.206.53]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id C80E23F58B; Wed, 31 May 2017 06:04:03 -0700 (PDT) From: Julien Grall To: xen-devel@lists.xen.org Cc: sstabellini@kernel.org, boris.ostrovsky@oracle.com, jgross@suse.com, linux-kernel@vger.kernel.org, Julien Grall , stable@vger.kernel.org, Feng Kan Subject: [PATCH] xen/privcmd: Support correctly 64KB page granularity when mapping memory Date: Wed, 31 May 2017 14:03:57 +0100 Message-Id: <20170531130357.14492-1-julien.grall@arm.com> X-Mailer: git-send-email 2.11.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org Commit 5995a68 "xen/privcmd: Add support for Linux 64KB page granularity" did not go far enough to support 64KB in mmap_batch_fn. The variable 'nr' is the number of 4KB chunk to map. However, when Linux is using 64KB page granularity the array of pages (vma->vm_private_data) contain one page per 64KB. Fix it by incrementing st->index correctly. Furthermore, st->va is not correctly incremented as PAGE_SIZE != XEN_PAGE_SIZE. Fixes: 5995a68 ("xen/privcmd: Add support for Linux 64KB page granularity") CC: stable@vger.kernel.org Reported-by: Feng Kan Signed-off-by: Julien Grall --- drivers/xen/privcmd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- 2.11.0 diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c index 7a92a5e1d40c..feca75b07fdd 100644 --- a/drivers/xen/privcmd.c +++ b/drivers/xen/privcmd.c @@ -362,8 +362,8 @@ static int mmap_batch_fn(void *data, int nr, void *state) st->global_error = 1; } } - st->va += PAGE_SIZE * nr; - st->index += nr; + st->va += XEN_PAGE_SIZE * nr; + st->index += nr / XEN_PFN_PER_PAGE; return 0; }