From patchwork Tue Oct 10 12:52:30 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Manish Jaggi X-Patchwork-Id: 9996057 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 300D760216 for ; Tue, 10 Oct 2017 12:55:42 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 21C81285BD for ; Tue, 10 Oct 2017 12:55:42 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 16AD4285C1; Tue, 10 Oct 2017 12:55:42 +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 A29B0285BD for ; Tue, 10 Oct 2017 12:55:41 +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 1e1u23-00031a-9Z; Tue, 10 Oct 2017 12:53:11 +0000 Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e1u21-00030c-IL for xen-devel@lists.xenproject.org; Tue, 10 Oct 2017 12:53:09 +0000 Received: from [85.158.143.35] by server-7.bemta-6.messagelabs.com id 96/BA-25852-4B2CCD95; Tue, 10 Oct 2017 12:53:08 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA1WSbUhTURjHPfdlu4o3rpvm09S0UdnbTEtCiIW BRG+GFQQzSO/qtg22Oe6dtdDCAk1XI9GwMmnaByVnlJaUHyycZZr0Zq++RVGIGKWRZElK9+6q 2fn0P+f3f57zP4eHwlVTpIbiXE6Ot7NWrSKEMK9duU7X6B8wJI4XYykTt8uxVLS1fewVkYEyS YvdmOPKJs2tz26RjpqFrqnqLrwAeVRuFEIRjAeH5loP6UbBFGIM4J0sVEhAxZzG4PLAKC4BBR MLLZ4eTNLhjBbe15cHNM7YoHbkK5K0mkmDk746paQJZhmU9b0JnNPMNrjhfRnoA8xi6H1aImq KCma2Q31nlHSsEi0VZe2YbA+DrkufCbk9QNvw8EzpEhh614VJ2YA5g6Cu7TchFy+Him43Jpti 4OGTKkLW6fBnSCqWCmoQ3HvdTcqbC0qY9J0lZdcaGGzpJ2TwUglN74YVMtgILyq8M9oBV69MK GRTBwkfXj9AMoiGbzXFM+ARCW1fLmJyKCN0eDuVsqmBhufTJtlUogT/eBEu/5gGRu92oVK0vH LeyyvnvbwaYfVohcDxRzhel5ScYOQtJrPTxlqsuqTEDQk2ThBYE2dljULCwRxbExJHIUhcd9H bxgw/WkRh2ggavz9gUC0w5hw6ZmYFcxafa+UEP4qmKC3Q1W0iC+M5E+c6bLGK8zSLgQrVhtOF EqYFB2sTLCYZPUY6qrh38A+mIuw5dk4TSd+UTIxkMufa51rMTmUPitGoaSSGUoU6ON5mcf7PR 1AkhbRqukrqEmqxO+duGhFDYGKIiMOBEE72H9IUoPwlca37mif9r/p27nWmb67ZNb00a8fv2u ZNocraqnCXIXNsfLX3BHblo+G8vuFOS1l/U/yPqQP8cO6EPqogJC0jJdbgO7pnd3uedyLv2vF wR7xOfT059dP60l/fn5/zeYO36F0/3drLan12kHGHZ39LkRBtUtKJNrzpVFyQMzNfSwhmNmkV zgvsXyMuBFSQAwAA X-Env-Sender: Manish.Jaggi@cavium.com X-Msg-Ref: server-10.tower-21.messagelabs.com!1507639983!69849939!1 X-Originating-IP: [104.47.41.50] 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 64370 invoked from network); 10 Oct 2017 12:53:04 -0000 Received: from mail-dm3nam03on0050.outbound.protection.outlook.com (HELO NAM03-DM3-obe.outbound.protection.outlook.com) (104.47.41.50) by server-10.tower-21.messagelabs.com with AES256-SHA256 encrypted SMTP; 10 Oct 2017 12:53:04 -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=n2GMurKVVWesvdDVudsWUaIU3Cu0jchG1hvZNEfoBdc=; b=FnhMhUl6lwCuxcm/+UObNQZD1Oj/zzc3/Pa+ZfnIZG7H7I6iquTNYglUU9qOThB4GYrf3Dxz1oLh2emcUPa2bLLOdpZbGpPpiNmeW2N2au8muEFLWQ/k5KZyrw6Cq4CkwV5nh+zZLHe19MbZTCqXAkxkvGOtbVkjFnL/bAYjta0= Received: from mjaggi.caveonetworks.com (111.93.218.67) by BY2PR0701MB2071.namprd07.prod.outlook.com (10.163.156.149) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Tue, 10 Oct 2017 12:53:00 +0000 From: mjaggi@caviumnetworks.com To: xen-devel@lists.xenproject.org Date: Tue, 10 Oct 2017 18:22:30 +0530 Message-Id: <1507639952-31617-4-git-send-email-mjaggi@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1507639952-31617-1-git-send-email-mjaggi@caviumnetworks.com> References: <1507639952-31617-1-git-send-email-mjaggi@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: SN4PR0501CA0030.namprd05.prod.outlook.com (10.167.112.43) To BY2PR0701MB2071.namprd07.prod.outlook.com (10.163.156.149) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7ef8366d-1a1e-496f-3c4d-08d50fddd7b6 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:BY2PR0701MB2071; X-Microsoft-Exchange-Diagnostics: 1; BY2PR0701MB2071; 3:gbplnAuGapTUji0qlvVX3+auG+i9ZflyaNdxt2CqzsR8mCOKnBAHHc158xh1t0gM0dPMDI6YLzJKVUEes0rRmEDJkHOLtwbPbnYz0Q2gqXsmLNSX1Bt1v9xAycdu22egLhHDCG4cRqMy43J7wUlvM30jPmFBAji1mAD0f8flT9sla1CI4onrTYWeepRP7wkYrK0smrcYz+O2bf3mcrRMDkZNbjm3FxFnwHc4jgW1NX876hyJ7fN0a+EO/WmFrC5P; 25:P1VgIr8WiTggWpZEYzT2ifKAQfJSLfF33u6sDOol3K/qF1S4QOBTRZbh7bYr4CILCpHEfbkHuLxltnT4IjagXDjD3z9arn3TpPYu7W4SkyXeZPUB0DkpaGdu1mSRPLXs9TgaAXS6gqQWoRY8oZQ4GjgNFJAplGurOobjijrMTPcQfCzKVAScJ9knERyaposC9vbuZobT+4RRnCwJxq7n4ufbJSxwOHaZitGk5tzVl8fYcOWkR/Q8f0apVCFKegpZDcHooov6W/+kOYjimQC5dHQVGP7HyIewDxLGn0C7Zc+DCckaH1qEgF63XtiWVyHbn11hG3L+2w+Lwwari1c2x5Wf9jAi6sirlmQdJ0Il19g=; 31:DUHuVULIFf6sEnHSRHkIMHKJSXiiG14nC1b3z9sHuXZarJVNOLqw+0+X3h8hOEpvZSvx4+/O8F/89bgOmz/PhrYdFeuSuWM6eCEaWg2G4mD8Kbmy+O+ApbJUc7PTOf8Z+1RJyBav3Wdpvq2AjvNf8jHPdGPk1CkFTflICmj8/Wb8nuEh/mQo8lAYmQFTqZQAlu0dOTAv5wyasaQn01HewMYEUHAcIrbbcbhb5/pYz9w= X-MS-TrafficTypeDiagnostic: BY2PR0701MB2071: X-Microsoft-Exchange-Diagnostics: 1; BY2PR0701MB2071; 20:mf9WWCZfsOwo6Cxs5YBuxvOLdOBUNlFBEBRTar3YGm0Hyp26jvMOoz7XCRbrDwkf0Ero6oM4n+JSi3AN3Ho00D1n4tHRgggON4x5YrcbJ9mx1oyNIs1QJzzpSjjRqDqEffI+r55qtUS8ngq1jgw5x4ViQDBXDBT0Pw1qSH1leFq3QvjsxvnkZ4vmCyraPypAL+DXPs0VyoQHYPy+JAEGorzueBEfcjnPSC6RR5LiVmNxMC008JumC5MkXgcY1fNsYa2jOHTjjuPMChX0ZV3Ai4SQWu+u13IoGCy2AK9JZN6KIhLvLo+EOS/81+GFOe7ahGf7E2k9IJXyPx3r5pxtmZMkQ66zbsxKRhgmKNcRXYUUooaJZIXO8sRLp4Yx7lgH7JzD16EOiht7PCq9Snq9G5cdtdz7mVqKv12Y2HoMBXBR3VGcqpxC1n+rBagI6Ez76q1eG34mtjBXEzC+shV+g+h5JbGNC+zfPVlD4YJz4aMnI444Kq2QpkbsyhshT4wSaz6xxLt3ibBhGq1vUgkMTPmGLLp39VXlXRY2+iO4fO4FFYr+hQJ5K/B/8GSgHgcHO3XkKGxm9aLR/zkP/NFPBntzxYSaI/e0lxFAmo3JMug=; 4:97MFn6tNHHQOOM6G6s0oc/MOv6m3cO2gxcAFupFpGH+WBbMqEiTESxTCeVmO9nO4aILLWoce8qqr2eWHc5HPZfU2QgMz74kqTuIWohalVZjuvhtDO7isTjq18dbFfzcEFDN2E87drRPotscVNRjwKS8CuLM8vbh86ueBvv1/WfbJ51K9ERHIE88ZSca3F0izrx4mzIqKhWWlRoASHEHz6wV4rkxIHYaaj54lomgAQleSRPR27EYEyifZlALo1NDwb6TCjI/x1lmOnurnNUayCN0zOBBeAZI+Ia0qYbBiLs4= X-Exchange-Antispam-Report-Test: UriScan:(180628864354917); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(10201501046)(100000703101)(100105400095)(3002001)(93006095)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123564025)(20161123558100)(20161123560025)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BY2PR0701MB2071; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BY2PR0701MB2071; X-Forefront-PRVS: 04569283F9 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(346002)(376002)(189002)(199003)(6666003)(69596002)(305945005)(9686003)(6512007)(2906002)(33646002)(72206003)(5003940100001)(101416001)(16586007)(316002)(107886003)(36756003)(97736004)(48376002)(50466002)(478600001)(575784001)(189998001)(16526018)(53936002)(3846002)(5660300001)(6116002)(5009440100003)(4326008)(47776003)(6486002)(2361001)(76176999)(66066001)(50986999)(25786009)(81156014)(2351001)(2950100002)(8676002)(68736007)(6916009)(42882006)(106356001)(7736002)(53416004)(81166006)(50226002)(105586002)(8936002)(85772001); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR0701MB2071; H:mjaggi.caveonetworks.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A: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; BY2PR0701MB2071; 23:aYMQ7E3YbEw11Ko3SpSrOddmfS8XPt1tDC+fbUb?= =?us-ascii?Q?4dP/vo9TOX0J4hfvVyQq/ejEdC8x/m+zNhhaX3FrWwm93bqkthzpW0aaWIsL?= =?us-ascii?Q?2ZDmAc4gyan2u/L5PBQpYLhkHZEonPdSOXgCdvWVyYwoJdZiQHfQLo/8EwO3?= =?us-ascii?Q?9vlsLPJ3idQr4ABG/XcDL0m43j5dg8aj8PFIXUNZCeVYlBIZoXGNIjYW7qDs?= =?us-ascii?Q?T/L7g1VnEUufBnCfD2LZFA4E6E2mZHR3vb5tVWYwfsjhVMWWk1aTcYCqKwg9?= =?us-ascii?Q?f/x/OZICvE1JbLBswi/bB593nKVvwBDZlHlWf7hxsn8wRvXI3PFg6G1ImfzK?= =?us-ascii?Q?B170f0V04ESPtM0wp/W1i4br0T56BU0d61iHX1js7y9Dql62ULSXO6idQRto?= =?us-ascii?Q?fmpOXQkqV0o9DnBEy1gvXaloNYd/Q0JcDgwt8fkNyKI/7GXgGionldNmdk0h?= =?us-ascii?Q?MlgJGEals9DOPfJax9N862WewBwGy+y4sOqAGgegXS6VohaUWprE/MA6jiML?= =?us-ascii?Q?mQp4+5FGfqrDCNv5ZQf2AtIDhL3WKEdThjP9rLHo3YrC4A56d4GHsFh5g7+E?= =?us-ascii?Q?pJbJk1EVBL1jcxRsnj31iPEl66uEU3tDp/wZe7pUhlKlOND4UPxw3stxKS3M?= =?us-ascii?Q?Da50GD+lRC1NuCJLoG9v6jyjCdtDobujAZ15pkME9plMqNhje9GtVdszFSlo?= =?us-ascii?Q?o9jeEcZRwRT6GdcPgj30aJUU8sFO3xdZYeuzE3MFIywPQy+DJQZRfNe1F/gI?= =?us-ascii?Q?Q1uA1XekDmbqQXHrLubmYex6N4uVkrnkXv9dljlBM8OGYSf3hijfg6pd9vjW?= =?us-ascii?Q?sQiNHrKFxzIkQvKlDtq6ML+sUZxArDIFO87h1tj6bzYXAaauK3Uq7Tj7o4mR?= =?us-ascii?Q?GlU/h3mbDWHHJxp3u+MZEgxcHKvN6h0323bm1DfJege5tXU17MYtRNalxCYz?= =?us-ascii?Q?BHUI52PuTKm4qfYunIHdyGzDThsjSh3oDPCyg7kBAKGwH7NfrKVNzlgbYauM?= =?us-ascii?Q?O4rqXCE1Pkg5tI/q1TegfecLM+X4c8VPq1ITjyW8h+toAO2JNJHVfN2u/Dmf?= =?us-ascii?Q?7gg58+t+/SxjxgLzkMSU4Vv5EBK2vhiEfF50oIj3bxDiNWVr3F+BricThf1l?= =?us-ascii?Q?ulmpfb5TErgu6wx1LBtH4uwVp1BBEsm/eRrSHl9YWdljcXMy5d7+HzBd6ExU?= =?us-ascii?Q?11XMboYCXkSZecTcbZfGeXbLPeeKtwJdrMMHyVPLIK3DrppNS1GBxe5yhNTW?= =?us-ascii?Q?xefgd6Swx9DWiLVa0WlvlAjVnrJYP1Bz7qvETbPc4?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR0701MB2071; 6:WH6AQciUvgN6bECIYUZfHagjRZBlb6ZefS2hISuj+qHsBUu0TeFK++uFxyQNl36Y+aM117rxAaqXxrG+6ahfgbd1KLCHGgTFBovi+OASquL1pgSnzhokC8gdwk25jZKr3B7JL66EcxcTEdkHzBkYCK0YI36mpzccj7+CZfB/ph66lCOWq6e6lLiwfb5fKvk0eWOqTtZd//an7IGfMC4c7jQ4/JlYjqjq1EAAuJE7/QrqZyyla6tIC+ZfJwWT5mk+VDB9YeQATHTmgrs4JFLuYyD9wucNygSQUD5ESkl8x5VfR09CEanJ1W+jWj1/vUaVBa+k1/xp/uOHovM/erI1gw==; 5:veTjzEBs6e+ZxlNCCC19bSYQqyPFn1PaCOvgOj9LOPgc+Id1YjyS4WgJqw5UKxvMvfa5JCUAVYA5HDPxNHFp8GQSSdhNWptM4NLq+IH3IWkZAEomd6i699t/ZZF75ZhEZOL1lkMalPIGa6YTJcGcXw==; 24:H2v2ykF5/rUcX1/Rb0FBxWs6UUJ6yfLthfCjQM0JFseiLSXxyi4XGm6k7l8Chd5gVOQg7ICCOgMm+De7iFPydGBVlSKwAz00Z9lLg5La6a4=; 7:0zRp55jILcxNfi5cmsxVmbXDQw/E4TofOXziflHKxdOc5Sge9JM/nNi5dr57tj+l251w5mhmdGSv2PuXLP7HRPvnPnGXc0+wwPe6UD7LZBXwxmkQOQlRMsQUdcv4pNwy5Wzyd4lb8MOZVxxnuPcw6zK0yXmyuyLsiAVgOp8DlcfsdTFvXbwCu8KW90KWlvg89BpHlFiansWZuIL+vrXDjYwnqiIYwTlhtjeTJAE9Oag= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Oct 2017 12:53:00.4025 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR0701MB2071 Cc: Andre.Przywara@arm.com, julien.grall@arm.com, sstabellini@kernel.org, Manish Jaggi Subject: [Xen-devel] [PATCH v6 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. Reviewed-by: Andre Przywara Acked-by: Julien Grall Signed-off-by: Manish Jaggi --- xen/arch/arm/gic-v3-its.c | 22 ++++++++++++++++++++++ xen/arch/arm/gic-v3.c | 4 ++++ xen/include/asm-arm/gic_v3_its.h | 9 +++++++++ 3 files changed, 35 insertions(+) diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c index 3023ee5..bd94308 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(its_data->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..475e0d3 100644 --- a/xen/arch/arm/gic-v3.c +++ b/xen/arch/arm/gic-v3.c @@ -1308,6 +1308,10 @@ static int gicv3_iomem_deny_access(const struct domain *d) if ( rc ) return rc; + rc = gicv3_its_deny_access(d); + if ( rc ) + 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 73d1fd1..73ee0ba 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;