From patchwork Thu Sep 21 13:17:23 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Manish Jaggi X-Patchwork-Id: 9963911 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 B125C6056A for ; Thu, 21 Sep 2017 13:20:51 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9E2B829291 for ; Thu, 21 Sep 2017 13:20:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9335129293; Thu, 21 Sep 2017 13:20:51 +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=-2.6 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED, RCVD_IN_DNSWL_MED, RCVD_IN_SORBS_WEB, T_DKIM_INVALID 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 26F742928A for ; Thu, 21 Sep 2017 13:20:51 +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 1dv1Mw-0006m3-Qc; Thu, 21 Sep 2017 13:18:18 +0000 Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dv1Mv-0006ll-Nw for xen-devel@lists.xenproject.org; Thu, 21 Sep 2017 13:18:17 +0000 Received: from [193.109.254.147] by server-10.bemta-6.messagelabs.com id C9/47-03642-91CB3C95; Thu, 21 Sep 2017 13:18:17 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrHKsWRWlGSWpSXmKPExsWSoa+lpSu253C kwdK5vBbft0xmcmD0OPzhCksAYxRrZl5SfkUCa8aEhj2sBetFK66/nsrWwLhSsIuRi4NFoJdZ Yu/UaaxdjJwcjAKREvN/tbKBJIQEWpkkvl9aBJZgE5CX2Nl7iQnEFhFQkri3ajKYzSyQK7Hs1 VtGEFtYwEXi4vQPLCA2i4CqxKNV68FqeAU8JSbdXs0OYksIyEncPNfJDGJzCnhJ/FzVAGYLAd W8v7qEGaJeUOLkzCcsEPMlJA6+eMEM0aso8ezGSSaQ4yQEOhklNv84xwrRrCYx7XQXE0SRr8S Cb7PYIYqeMkk0H3jBAuE0s0tMmLuTDaJKVuLo2TksELaOxObuzVBjl7NLvFz7nRUioSWx7upH qN0FEjOaDjFDFB1jlTj86z1Ut4zEtuc7ofbtYZW4Om8/I8RRSRLH5p+ASszilfhwdjVURye7R PsTcUiQSUm833GScQKj2iwkn89C8vkCRqZVjBrFqUVlqUW6hgZ6SUWZ6RkluYmZOUCemV5uan FxYnpqTmJSsV5yfu4mRmBaYACCHYzH38cdYpTkYFIS5d2z7XCkEF9SfkplRmJxRnxRaU5q8SF GGQ4OJQneP7uAcoJFqempFWmZOcAEBZOW4OBREuFlB0nzFhck5hZnpkOkTjHqcnTcvPuHSYgl Lz8vVUqc9x1IkQBIUUZpHtwIWLK8xCgrJczLCHSUEE9BalFuZgmq/CtGcQ5GJWHe6SBTeDLzS uA2vQI6ggnoiOwNB0COKElESEk1MPJ8OPN+U+qkktuvskMNtlqoLL1q/aPL/2Xl3itTbRl5fJ 6Wds0Pb+liSc3o3FvroJBWxn/JIW2Zb2OY13v9lfNE7xUyPFnwgUWVie+4/e+rJo0XdF9/azv U9lwj+SG3Y+rMgDn1fDHn1u4LmJvYNpE/pS/HvnKf3RRP5o1xR4JdToovUOq5oMRSnJFoqMVc VJwIAAqVkSCRAwAA X-Env-Sender: Manish.Jaggi@cavium.com X-Msg-Ref: server-5.tower-27.messagelabs.com!1505999892!112404493!1 X-Originating-IP: [104.47.42.42] X-SpamReason: No, hits=0.0 required=7.0 tests= X-StarScan-Received: X-StarScan-Version: 9.4.45; banners=-,-,- X-VirusChecked: Checked Received: (qmail 13200 invoked from network); 21 Sep 2017 13:18:13 -0000 Received: from mail-by2nam03on0042.outbound.protection.outlook.com (HELO NAM03-BY2-obe.outbound.protection.outlook.com) (104.47.42.42) by server-5.tower-27.messagelabs.com with AES256-SHA256 encrypted SMTP; 21 Sep 2017 13:18:13 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=YiikNTozEDW/CVzFeN8IkAMGNBlHxH1gqzPiJuEFSLc=; b=kLRdAjRsNzMkFlibeyRiTZ9Y/0Spj4fZcfraL2OzzKKolyGTBvOYk1aHCqZsFzYmmHA/jrAk4R1Jp8SCCs4ShxrMPMQIOYKbu4eSx/jAY3hD36x1GlTLcmUwx/tRQm7xPWHN8bgAkrTIDDa3sShvr+lYwNJ31cy4nOjzyJ3+ywg= Received: from mjaggi.caveonetworks.com (111.93.218.67) by SN1PR0701MB2078.namprd07.prod.outlook.com (10.163.132.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Thu, 21 Sep 2017 13:18:09 +0000 From: mjaggi@caviumnetworks.com To: xen-devel@lists.xenproject.org Date: Thu, 21 Sep 2017 18:47:23 +0530 Message-Id: <1505999845-12577-4-git-send-email-mjaggi@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1505999845-12577-1-git-send-email-mjaggi@caviumnetworks.com> References: <1505999845-12577-1-git-send-email-mjaggi@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: BM1PR01CA0073.INDPRD01.PROD.OUTLOOK.COM (10.174.208.141) To SN1PR0701MB2078.namprd07.prod.outlook.com (10.163.132.25) X-MS-Office365-Filtering-Correlation-Id: 90bf3616-e97a-440f-b886-08d500f33503 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:SN1PR0701MB2078; X-Microsoft-Exchange-Diagnostics: 1; SN1PR0701MB2078; 3:PV6gn9XqK5JrpSqPyaQDN8ykOlH895M23/HX3EawJjDcNFVLDYmUot7fbGeNaI3pqnohCNWyvR4r51O5XyIlG/SScsAaSdcZLehhmRK7mnsuwH0j1oU2gNxqgVbSNfQ59byPfioZut4qnrJdp5HpaK+qkoLVlcz6mjM3qWWaJ7sxz55fQT77BPo6FyWNpERbZiAsxR800XA+XLSshLFP8XgL6sXGRJhJJbc54eTi+ASq/yTmk5oFtwv1C9o4MO02; 25:2RB+zZUSo8Hal/etUisLPDicO4imqLiA49KJSDsdz0jU7o8FZ3yCBGnhGlSmMQ6PCePMnUOmVye8GMvfgDsX//tNy+r3rR32NQC54FZUGKZZV8tQJWkUGTFxS111ZVWyDH4JXZLD+6n1YsJeYVrFQkzAlMJitwUrKpISTU05rAcBhgYY3glQakTzKiPt3N5fV9zT/xcdqUhHJs/QBKzLio0cEjJF6utJoEi4h4RvfdHvDhxQwzjYL30weLwIPtJJGGvTVP+Ve9vp8xkGdhn5CeGFpLxRaJUdgc0C86PRzbRI2hEq9qqmAOvUpFNKeidMNzyi4kGTLYDmRoEGozTzIQ==; 31:4V3YCPw4tCKlkDeBygRiP0GUld/WNPF0U/gUJOTPdxUKRXT86YSEtEFwNDQMReVJKLtxVKOckoR21d8PNCndyVFW+4pA3pX64t/Z/R9eXGQkogf911v3b5glCJvoeM2rRsGCH/54Y3ff+YAqlc+YSAX3Bpqy8lXz5Jz4gzBo7QOg/Zj27gqGeW8I6K+azEiI/2eNsJf+xmvsRBjhLGDx3s/DITiY6gL9pur+XwsJFmY= X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PR0701MB2078: X-Microsoft-Exchange-Diagnostics: 1; SN1PR0701MB2078; 20:mOrpnV+d281kG+hu7CPvGjBd0y0eO9ZJK6U1+T8F3TEkVaW8/OznmPm+obzU3sa91ZR/Pcx4IFaOOoKwPbEUx9eeaLUJAFtRIV7w10v7Ry9TVn4xkXy7ryWvG2pbxAIqX/+/FgI+FWVLJ8vQBGSXIJQ2H0s9EJ9nT6wVW9ZD2+JPIVrNmhYEEBemQDBQmGo9mKRCiS46qX/yEyQKG7ZrmH2knqK9yIP59Toobwq63sMG6HKRMuuCtz3oT/u0isUkO3IsOILiGQLQrKzmz9iC2PluQbBWFk1uPoEAbvKFz8etJSevbIR5BTf8WIU2zKf28jCMTFYKHj7+X7VGXvyM7MeChAGSldmWC0B80QVXyxk/a7RbHS0C7unYk5wZlEaFaYiUW6MLPy6nlR1zq9iQLUNuGvuY4cznXyuSyx4sMaIRIx6dpZHBgVnQnK8zDBxxX+Tbsix/DP5kvqz7IKk81jkQLrm4PGqixmLORxZqqmBOTbq2il2qE1ylp5CIE9mW/F8418XXlAmkgqGI36j/pTka0zPK+h9Dg4asb4xT/e7WUcFB2TdYAfZAVyLQ+SgsR4WK4bYuPta/hMCfPIKBr0w/jMyOgw8Chtp1mq85cwU=; 4:KfKDQl9sxTHnWZOn5QWy1jTizcbMoTe5lnijgM0C+YzWgaqxgc6R+M8QkAcnIcG19BZEVRyX2RJoKrXbfUxKFF8RjHHCJN08tXw5TsD6b6amsq0EeNveM10P7VBYB7mt9yU8vLzAVHgAnnbSOiUvlHVJ4Ejtmrw6KqOdD/49ckBpHU2WmaCnN1AfCzL+M2nS/+flUdCbtXR9jg1frtHGIef+tgWoz7tH1PRrbdrH9Co2NTBYea3srFMaD2mjaX3C X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(10201501046)(93006095)(3002001)(100000703101)(100105400095)(6041248)(20161123560025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123564025)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:SN1PR0701MB2078; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:SN1PR0701MB2078; X-Forefront-PRVS: 04371797A5 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(346002)(376002)(199003)(189002)(101416001)(50226002)(25786009)(81166006)(81156014)(8936002)(478600001)(76176999)(8676002)(50986999)(5660300001)(7736002)(50466002)(305945005)(53936002)(6512007)(9686003)(69596002)(6916009)(2950100002)(42882006)(66066001)(4326008)(48376002)(107886003)(47776003)(68736007)(189998001)(16586007)(16526017)(6486002)(2906002)(97736004)(5009440100003)(316002)(33646002)(36756003)(105586002)(106356001)(2351001)(5003940100001)(53416004)(6666003)(6116002)(3846002)(2361001)(72206003)(85772001); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR0701MB2078; H:mjaggi.caveonetworks.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN1PR0701MB2078; 23:cOTvbTXOkSX4DaV9aDSaBZWB1yR8KYPIXQhQ5rH?= =?us-ascii?Q?uplSPPmv33FAySQoMETLFoxxfW2ZSWk9cqWVnvaUkaTFh9Yr6pn18hXiWRGW?= =?us-ascii?Q?okGfs7DhXrQ3XsxxHE8OmT/Ap0TqBvltmZPfjY1UK4XKBJbMUEAfjOIliOqo?= =?us-ascii?Q?Jd9kG71gj8K+t0mFmY0Ki1Bi5uFhdjdFNK9ZMONAfPzrIjY3Ldfq5jlKXt8q?= =?us-ascii?Q?CkKZM2GBsVpDATpU9d+Zlfpn6TSH0I+DgHeRjvwCpw11IpPfIsI7if9s7Oiq?= =?us-ascii?Q?Y/x6dRYdy8/G8dRmq6T3xn5UZVkuE5hRKew6IRzzWt4Ma4mXV1KHPJ+YDCA6?= =?us-ascii?Q?Gu5bJ+Hq2WquB0z7bYvH/7LdOXBryBW9cTnUCzb5vvddF7dXkV5ThfQc+wll?= =?us-ascii?Q?kX6BG48ifoi2Ck1J/T/hT7T99b5lObFdacKYPolUCRNYI7TgHCrlp6xk52Xi?= =?us-ascii?Q?ow/u9PWQ0ZqlvhpaJX8wClcRoV3UKIyV95OfBuO0+u7ownQTMXWG+060gxZL?= =?us-ascii?Q?40ZiWPa/6EBZfVuc2G+zXzjd5pOIfm8SHFXnBsCBy5NsVIFNmlsaWTSuE9e7?= =?us-ascii?Q?ZCOcgG40PspTfz30P05vfkW17awzbJwAyaaPWYXr0OKu4Cd3mjmwJjXpA20y?= =?us-ascii?Q?KciApdsUN4CvywjO52TkjEqnPrwW4KTMevsq1pbP3a1CFWN9ZTqOFhbJNEK0?= =?us-ascii?Q?SGT0SLIy9OL1i0jBmKOxp6y7WcotsOnDfu2/PMvhoWtLtIsxPCtCKHSb7bTd?= =?us-ascii?Q?wUyNhYcBRN32jDyHAbGDXaRRsXDbx22EkW0U1WpiDwK8w9b0/62Xf0sGEeQg?= =?us-ascii?Q?wWZmkk6We6lVInL3NErvcRyEXxHgZ5uIJeGWgFIevkdaWp9w8chKja3O9ROk?= =?us-ascii?Q?Yji73l9RavV6TgjHNIsVYL6vDMzD3gB+3NMflUavsESV9axrg8fkAHkKsxjr?= =?us-ascii?Q?s7ha9LQAm4F59D97mKZOlMy61agqQseKfsnHgbyqQ5WRksF2/uGrMeDH3iq9?= =?us-ascii?Q?GYk9uh8rMhTAYAnETzVXPhKGyNMBbTMorac9zubg1FSVGN/J8Q+WrthOVO7D?= =?us-ascii?Q?3JDwhwSJywz1yEkdbG9N1n3qe0bm0S6rKlK+LpNoATW1EqrFSMzuxjTuXxjM?= =?us-ascii?Q?MESVy0Ax5PZEbYJRbYJwXD6k/3745fABwlTvPWEkqV1AwQFARt9BYhoxiU/A?= =?us-ascii?Q?lMxuVQBpfUKhm8Y2ioQCk/BpdLhQJzvXO2QoD1M0MbdjSE/qteOYyQjew/13?= =?us-ascii?Q?aOu/I+8Rl/0SOHjimNpE=3D?= X-Microsoft-Exchange-Diagnostics: 1; SN1PR0701MB2078; 6:tPgmypqTBWI+wEgwmE6CcGs66afHmlTF2m6ZMVFRe9iuWwGNLrNg4DQiBjy3uTgEGRU+5xB1SVus9ZJHTF3ARiAdzDXmNhE6rtJ69qvKN4iAeVl5SpLg59903Gi3EJArK+Iqnm/j+YKzTywtGgdYrEpTgABA0MWGFX0xr+yXzhEZ0bKdKxxqvGY8cL85q7ZJUlGjQZqS+bfB32cr643Syq6mWUe4cwp2obJOMfxLM0DarkwCRtWPFeVVMcsNPg/TiLYrkpVyyM5UFgJ4FFAHSiD/fl+xrg80l9aNSdAHM+oIdNRnDuFy07bw2Oz5Sv3PZoOix1e+Y9HtO4+quL9S5Q==; 5:hUV1OKOKhvbQNbGX+3BnHaP+7MVMX0fK7nRZlvfj1qhw1HM6lpuUqdWfEqTz6pNFc0Uufiv4BMEO80xahpUm2jrcnlljTYNVeg3rrL4Rk2a6v6ockkDHP1QdHgQu8E0aedl3k71v+3jE3gAJatnhUQ==; 24:Bq+pJyYKFcQOOH9vwH3mhmv+g0kxBsxAhyIRPF6Wv6z0srFy+XXN7OtJlSlzHK2Flh3eD9ZROEFoTDLjxUi9r0+dU6RdzkL5iqGM8dQYmA4=; 7:poKi7ykgs+XctrPEtfZ86N/L6rW0EkQhDMmEmJc5eXNE35Amlj4C4sa4Y9vE7RYn4WByDDHI6A/AfHyOWykyTnXbX75szDgQzmujd9XnD6q7Sou9MKe6J0OMINBl3cLEclIc/TkVEBelXQHx4n2Ot3izJGtuYqtLmCVdVv6Hpy3CjxEMrz9oCY7DkTNpRDSqC2ZqMvjG+oo1hKAroNrN2osrb2Pwh53KfrrXTGCaqOM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2017 13:18:09.0687 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR0701MB2078 Cc: Andre.Przywara@arm.com, julien.grall@arm.com, sstabellini@kernel.org, Manish Jaggi Subject: [Xen-devel] [PATCH v4 3/5] ARM: ITS: Deny hardware domain access to ITS 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 From: Manish Jaggi This patch extends the gicv3_iomem_deny_access functionality by adding support for ITS region as well. Add function gicv3_its_deny_access. Signed-off-by: Manish Jaggi Acked-by: Julien Grall Reviewed-by: Andre Przywara --- xen/arch/arm/gic-v3-its.c | 22 ++++++++++++++++++++++ xen/arch/arm/gic-v3.c | 3 +++ xen/include/asm-arm/gic_v3_its.h | 9 +++++++++ 3 files changed, 34 insertions(+) diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c index 0f662cf..8697e5b 100644 --- a/xen/arch/arm/gic-v3-its.c +++ b/xen/arch/arm/gic-v3-its.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -905,6 +906,27 @@ struct pending_irq *gicv3_assign_guest_event(struct domain *d, return pirq; } +int gicv3_its_deny_access(const struct domain *d) +{ + int rc = 0; + unsigned long mfn, nr; + const struct host_its *its_data; + + list_for_each_entry( its_data, &host_its_list, entry ) + { + mfn = paddr_to_pfn(its_data->addr); + nr = PFN_UP(GICV3_ITS_SIZE); + rc = iomem_deny_access(d, mfn, mfn + nr); + if ( rc ) + { + printk( "iomem_deny_access failed for %lx:%lx \r\n", mfn, nr); + break; + } + } + + return rc; +} + /* * Create the respective guest DT nodes from a list of host ITSes. * This copies the reg property, so the guest sees the ITS at the same address diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c index 6f562f4..b3d605d 100644 --- a/xen/arch/arm/gic-v3.c +++ b/xen/arch/arm/gic-v3.c @@ -1308,6 +1308,9 @@ static int gicv3_iomem_deny_access(const struct domain *d) if ( rc ) return rc; + if ( gicv3_its_deny_access(d) ) + return rc; + for ( i = 0; i < gicv3.rdist_count; i++ ) { mfn = gicv3.rdist_regions[i].base >> PAGE_SHIFT; diff --git a/xen/include/asm-arm/gic_v3_its.h b/xen/include/asm-arm/gic_v3_its.h index e1be33c..31fca66 100644 --- a/xen/include/asm-arm/gic_v3_its.h +++ b/xen/include/asm-arm/gic_v3_its.h @@ -139,6 +139,10 @@ void gicv3_its_dt_init(const struct dt_device_node *node); #ifdef CONFIG_ACPI void gicv3_its_acpi_init(void); #endif + +/* Deny iomem access for its */ +int gicv3_its_deny_access(const struct domain *d); + bool gicv3_its_host_has_its(void); unsigned int vgic_v3_its_count(const struct domain *d); @@ -206,6 +210,11 @@ static inline void gicv3_its_acpi_init(void) } #endif +static inline int gicv3_its_deny_access(const struct domain *d) +{ + return 0; +} + static inline bool gicv3_its_host_has_its(void) { return false;