From patchwork Tue Sep 5 17:14:58 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Manish Jaggi X-Patchwork-Id: 9939399 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 49E4A604D3 for ; Tue, 5 Sep 2017 17:18:20 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2FB15289E2 for ; Tue, 5 Sep 2017 17:18:20 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 248CA289E3; Tue, 5 Sep 2017 17:18:20 +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 B0CF8289E6 for ; Tue, 5 Sep 2017 17:18:19 +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 1dpHS3-00062C-Ag; Tue, 05 Sep 2017 17:15:51 +0000 Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dpHS1-00061K-92 for xen-devel@lists.xenproject.org; Tue, 05 Sep 2017 17:15:49 +0000 Received: from [85.158.137.68] by server-17.bemta-3.messagelabs.com id 7E/D2-01911-4CBDEA95; Tue, 05 Sep 2017 17:15:48 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA1WSb0gTcRjH97vtttN2cc5/j0OzDZolzdRQ7F3 QHzTIfFHBfGHe7HTDbc7dlOWbHGLlyjBmieafSEqQmlCaCkKkJs60QBT/gRmpqCiaYaZgdOdN s3ff4/N8v9/fczyEWLGKKwnGYWdsFtqklvpLDKdUadqeKY8utrU0Kmmz1Y2dRck9ayOSNJSOG y36PEcmbhiZcePWxmBHb8s6Kkb1AS7kR0iocjEM/YzgNaJ00LBdKnUhf0JB3cVgsNKJ8UBKRU Jn+fCuDqLUMN3s3tViygwvl1YQrwOp8/B2u5zTBBd6DFY2MnhJUing3JDwE0AdgYnPZWJe+1G X4Gldi4zXCm5kvdeD85qkAsBbPSsR0gE+LCyIBa8K5se9GP80oFwIxibHpYJZA08+uTBhKAI+ DtX6yi5Dq+sbLug5DB7cTxLMJTKod64iAZyE+X7+FTxokkHpxBefIxo8oz981VZo987jwlAfD jOeTl9dOCzXNUkF8AKHruEZ30J66Gvo98VOycF5ZwAJH2UyqPK2+H6YElY7vKgCaWoObF5zYP NnCGtGx1nGVsjYtPEJMXqbMcdgN9NGkzYu9nSMmWFZOocx0Xo2JivP/AZxh3BbJEIdqLQ/tRu FEZg6mLzY5tEpDuvzbt4y0Kzhhq3AxLDdKJwg1ED6cwejCLAxOYwj22jirmkPAyFXB5Fjkxwm WSttZo05AhpAKmUoOckDigeGAsu+be8Oh1GEMpBEIpFIIbcyNrPR/j9fQqEEUgeSO3yK3Gix7 6cvccUYV1y0+IovttP/kLIYhTnGMhvD5E2q5sQtxc7WYGKuK/Icea2t/dd2l7hndjQmoWMtJK 1CO1VoHSz6Whs/V3KHqTyU+vhR37sTDw1Rjc7Fiv6UnWyUvKlzuXUZmvBR+TiQ8t+500evaK7 OQl3gme+v20LqsjL/pOdfSM6tms2fE/kv698/t1QPJ9+7rpawBjouWmxj6b9PGNm7ggMAAA== X-Env-Sender: Manish.Jaggi@cavium.com X-Msg-Ref: server-7.tower-31.messagelabs.com!1504631746!105772609!1 X-Originating-IP: [104.47.33.80] 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 62535 invoked from network); 5 Sep 2017 17:15:47 -0000 Received: from mail-bn3nam01on0080.outbound.protection.outlook.com (HELO NAM01-BN3-obe.outbound.protection.outlook.com) (104.47.33.80) by server-7.tower-31.messagelabs.com with AES256-SHA256 encrypted SMTP; 5 Sep 2017 17:15:47 -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=C6/H7FiHrSGfxmy5HlTtUdYop1v4BFzPnPGeAgFDn3s=; b=PLm807qBWJuQ7/ko/BNZyOm6ommx/Fojacz4ZCrky0mKcZox+9ZqdasaRVVjNK0aJZFkOuKGhITFCVcODIibRRs7YVJY90MUqvQfZirSPJOmydmKGbJozFeP+crvvl+ibfHKPSALRz6HbvqrK3tepHM81A1EIuWpc24eH+znA6w= Received: from mjaggi.caveonetworks.com (111.93.218.67) by BY2PR0701MB2070.namprd07.prod.outlook.com (10.163.156.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.20.13.10; Tue, 5 Sep 2017 17:15:43 +0000 From: mjaggi@caviumnetworks.com To: xen-devel@lists.xenproject.org Date: Tue, 5 Sep 2017 22:44:58 +0530 Message-Id: <1504631700-19358-4-git-send-email-mjaggi@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1504631700-19358-1-git-send-email-mjaggi@caviumnetworks.com> References: <1504631700-19358-1-git-send-email-mjaggi@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: BM1PR01CA0079.INDPRD01.PROD.OUTLOOK.COM (10.174.208.147) To BY2PR0701MB2070.namprd07.prod.outlook.com (10.163.156.148) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e25bae39-dd4d-4ad6-8921-08d4f481be99 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(300000502095)(300135100095)(22001)(2017030254152)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:BY2PR0701MB2070; X-Microsoft-Exchange-Diagnostics: 1; BY2PR0701MB2070; 3:E+lTlSD5RH8kcedtAiVAMCd0egBWcP+PrYosLmgPkK9wuGayk2Wc1s45NQ8KZCSNY2w0vJkT7aFLkZehS+4j+SwNbqYCIRzuN/WhKo+G1OAI3kakq5N04xZRvjxAB0tVEBuipiaTs8JFD4qXawmqrcx6f3wPdABnm0rXOaTCrPe4qFxja/aH3fePqErK2KATxiRikjWnbGZU7etai4y4BiJgT5QUjCopADrGjDoLsHOAc4Aowq0508kzYDCWhLbI; 25:SoUd9RwgPTMQ7oFN+DL/3S5Fd9fnp0CYFevNqm2/uI2vJXCDIrpxLNHVD1cS+iSas8nS4GoYEndJynWFY4NMsakosN5dsM3Ia+OEBQUvcEe36T5mi1vPkNSDbRwME+FgPDHV6wNrCmgfpvzw7JNjfDHUG9KdZXXropTIzbmbkcxK6ANsrtHk6Jg2qAMBBihiktgMtzeWc7TwSW4PC7PyxsJEMo/crkhnYuqgIRosYAJY+S8yNIKDomMU9s6kXHskELCPq49Gf7QofIPdZdMGeZtvQzde6mncFbB5k28Pjdt+Os9UOAr2HQRxxPcqkIhtcImuU7ADmo1glfNbj3qGTQ==; 31:4IKKktAUitFlmHgOj+AfjYYylOcx3BsohoJbTggYDh2gYCkghj1yerf0qYNCGBZoVjAHkactoTDL5pnX1CqFFXJKDoiKKqsSZu49L+mnwKKUDmfgpvsyGtnMNNs7lczvAYWGBPC6CMnM1zZlgalDLR524YDj8Sj2B3+bvHDFRYbfv2dmoFlSkjq+YoWLySCJgNZ6rpMns7ozm6+5Jr3gQKK4bTzx4JHu6YhY7n4W+Fw= X-MS-TrafficTypeDiagnostic: BY2PR0701MB2070: X-Microsoft-Exchange-Diagnostics: 1; BY2PR0701MB2070; 20:VePFqc0HrSOJnxL/xsuMPqvJgC1GxEO/6pEDQqZSvaZLaPPhMU6sRJrJC09cDIgqx0QevXWoqrmusKeCnsV+fO8xlu1TT9n5v7xMFNKsgzCMxZ11QG+rMT3IAfv5kCTCzU2Fscs8o5as9zCV8oLDhEBXgakrl9vuHHbhenZLBlkFfeaXU7sttgXSY+vJxo4pXbbT4yPxSKiSqQmbcUewNt2gvIKqcjiuUAib3udMtAJEBmaqcWlQMUIUlgvdu8Gj5pVei9NVuzZQT8W/1O/fAEd7IaiZSdlqEffLdi4sz0XY9jqkKyp+G0IrDHHP9mrPpbtKTywMysCVgUsim8FMSD+p3njQEUU7B4abwjxTr8BvrZW0Ka8Fc91Q+K5v7xXzRBNGMZjHOZok7OgXTXY9Lm7KBc5r24sIUa4Q4b/b6Uphlg7TprWcAnDB/BQMf7HQSlCu4AeoyWSwSwjKHm6gLvvMIXAzRCHc4obc4/IoGjnHf6L6QUqgnYNXG+UGABVHHTz0ernqVxIkKbP6hwRRwkKi8LJcoAK4hykGJ5ILDEgudnsnqM/fVRd30hcAyMowrdPsVG0PoaHI1TznZl+VUQauadTKYlLJ7cRO2hxdOvw=; 4:EqeD7r7rXLOefeia86/s2ue49LU33ECNaAvCvSMgSloFjj0ILUEp95jS0eMswsJi2CFUm03Ck/cEhFAelqlzdmyPvpVsYKQnLZlXjvVJ/ize9wlPQJ7b9U7eryA0nCOvG2ma8naxzRLuo11peK6IEEFMLMAxkME5cMdQ6zzPDiaEIJDV/0Ao280Pu3RQMyFfZLyU3rVoK7//BULdaTpPolQr2+YEnl0Tuw+vQxkd/Aoxx0Ks8v3jBV+0M68Bj+AM 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)(5005006)(8121501046)(3002001)(100000703101)(100105400095)(10201501046)(93006095)(6041248)(20161123564025)(20161123558100)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BY2PR0701MB2070; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BY2PR0701MB2070; X-Forefront-PRVS: 0421BF7135 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(189002)(199003)(81166006)(81156014)(69596002)(33646002)(48376002)(478600001)(50986999)(76176999)(8676002)(2361001)(50226002)(3846002)(305945005)(42186005)(101416001)(8936002)(66066001)(2351001)(107886003)(110136004)(7736002)(4326008)(47776003)(106356001)(5660300001)(50466002)(105586002)(6116002)(53416004)(36756003)(25786009)(2906002)(5003940100001)(6666003)(5009440100003)(9686003)(6512007)(97736004)(189998001)(6486002)(6916009)(72206003)(53936002)(68736007)(2950100002)(42882006)(85772001); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR0701MB2070; 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; BY2PR0701MB2070; 23:9TBtDhaDYe8u3ih366aPUX0irpaS8oBE59BWa6R?= =?us-ascii?Q?0aefNFnuEYxr5vOq1q4jjb5oPVxAXjwFe41TU6lSeASziAFe9sJQcalV7P7r?= =?us-ascii?Q?OWP/7ih6XXW3ZUEZ7DIdWZ6puml7/IyLd2ROlYiiogaod0T4RXJL0myjQFnM?= =?us-ascii?Q?/72zh6zwiF5fIJQcBr1AvknhGSs+UYOSjm498sTuHb14Uv+snkD0ae+k/yoT?= =?us-ascii?Q?05/WuWKBotnD4SN4NFh2lx8ZR9KAdW3CjvORMdn7A4R7e4mNmAD5OC26VeCK?= =?us-ascii?Q?bhXIOEFbevEwxq9ROKa4lsLQ8Kt/sXzske34QJjTtKWZUiahEjxWpllhNRge?= =?us-ascii?Q?v5JzSeHC9zbz0vBj/PL2pcMEYwCcdGHKUvcukDQunAJFmn4Jr67nGhOFpUi/?= =?us-ascii?Q?tliZhABv86XIJ5lttTPfS3z7sEJGPGAOS+wayZI8PIJxBLiS0tukQC2kYxvz?= =?us-ascii?Q?E8Ivyhbto4SxQSr7eahxjKosCCyBDzuOS4FXkpdLZhszNmwqASTDANY7GYud?= =?us-ascii?Q?M6gm3/cKyDe/ob2lRYePRPUq08r7yn/tP3V4ShyoSuK6F5JR8JBARmSI3VyB?= =?us-ascii?Q?MPoHxo6WOZdj0UCb6J8gk01KWgKaeSILUKVDwa9qIV9++LZ8lnLCMYVSX/B3?= =?us-ascii?Q?k1zRvj29fL+AB5OO68axtnzMBHXoZTfJRkMblVMeeB2rIFvCIaU+SKdpxktw?= =?us-ascii?Q?MT9oKsz9WCIYtcga2s3adbWFVjJ96rEtole0jAjNi4cdfGBclRAL7NruueCB?= =?us-ascii?Q?Ed7dX+bIFtRhPko/KqMuMp2zmdK0jqTZpmk/pT52NGKMnx/NDJygS6f8UXB0?= =?us-ascii?Q?Y4WPcWJiBicZZ8OARkm2+gAT2dwfX4tf7UY8TEZx9sb8Kr+SzqSdrpAQ6gJH?= =?us-ascii?Q?AzOmHdhWUyXkJsNiASCRF6qnsHse1MVX71rbjoDmXoTP2NeCI1S0GpHzCyMS?= =?us-ascii?Q?OGREPjrhBbQssdyFSfmuFNhdn0XiOnDquu6Pp0IvaCQgSrTH9xv0mLuw8nf+?= =?us-ascii?Q?prMACC8JT5c8DFYTYGxmd5lN+cZ2S7FLCZUWBVIRHKlOfVtmPaLlSLajJJs/?= =?us-ascii?Q?ucbsy4RlMSFZjyMWjYkjYgKJ51ccwRiMnBfFiFYPGiAKA0r8yUVweigjfDEh?= =?us-ascii?Q?ng2HKksYaABJkIZMvmn1JP3CFMVZogoRwweYTIb9Vxy6WRIxEnls49QCxAT4?= =?us-ascii?Q?iXhOfITtPItEttiXZkQItNyChGobFUdNnBKaE?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR0701MB2070; 6:K4PWR/QhwIpfUjGfPuHvKVMs6YL+A9N8WZ6If7NBdQIaUjJ/PY2IVB4kDEORCRwV7dTdfUX2gvGld2aOxCzlmJX1VCK+dKGBn1QEqYx7TXZZzqDW8YzwaCEJaFCofdW5/AUTKaDOM2wjMM6TOqpCkzQXnNJz/nqVUXLC50PPgUpm93+Gk9y0pggRd4lP4ptLo/syb+K3lfS3OYyHNdGG9g9i693YtrpOvTg/Yv77Ngq2XHKI8KN464vSkO14kCTgwFrccRTN685YZOxDdRABEWTjeqv0CiCk0r6w+OZp9TfAp6v1D+aaknsrjzUUJoVtpNh5oKZ/u2oOV+tIYxx6hA==; 5:svyHy69OHdbNKhrCAHLb8Jsr/LCwRCU6Y4e+3XtsGqG2qnlUT8Cz2f0Q1Pf0xBhMs2TliabXdS2cI9PvDyAMZ44V7urzjTx6JQ8BAO8442g3WSiMckKyvvcv5jekiGmj22Sc+cLciOm65JW+zTPVaQ==; 24:agbfhNMkrxzqxx8kUt3x0kGpesdhla6kxOYZMzeX5R5e8pYgy9r11hUOjDq35rydctbu7znSdB3T1gcCe7pdV+A8+4+3PAJ8XxmPfTGqmJ8=; 7:uiMEVjG05JmZFIBrmDFjuMJ2+IWsMTUunKQ3Sb5yIWtzGMMttygAzQr6o9sPEqnOQZcceYkdEjmjQRPWnpDvZl7/MfUsEc1bXG7NYiXWBBqeakYZ4+YhV22GadXoVxZBBEB7R/s0S8dZGSvCWO0Erc4OwnJ8tmvTupdNoVZoSVOIBr26wLk56O1gNZjMuqNiGLKJLWtNuhS2oa01RM4rHsQOTIUJgVVWMQxiSIdFwRA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Sep 2017 17:15:43.4273 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR0701MB2070 Cc: Andre.Przywara@arm.com, julien.grall@arm.com, sstabellini@kernel.org, Manish Jaggi Subject: [Xen-devel] [PATCH v3 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 --- 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 536b48d..0ab1466 100644 --- a/xen/arch/arm/gic-v3-its.c +++ b/xen/arch/arm/gic-v3-its.c @@ -20,6 +20,7 @@ #include #include +#include #include #include #include @@ -906,6 +907,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(ACPI_GICV3_ITS_MEM_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 993819a..9cf18da 100644 --- a/xen/include/asm-arm/gic_v3_its.h +++ b/xen/include/asm-arm/gic_v3_its.h @@ -138,6 +138,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); @@ -205,6 +209,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;