From patchwork Tue Oct 10 06:16:56 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Manish Jaggi X-Patchwork-Id: 9995075 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 7F1CC603B5 for ; Tue, 10 Oct 2017 06:20:28 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6FA2F279E0 for ; Tue, 10 Oct 2017 06:20:28 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 60F3A27CAF; Tue, 10 Oct 2017 06:20:28 +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 25F5727D0E for ; Tue, 10 Oct 2017 06:20:25 +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 1e1nr8-0006Ef-CO; Tue, 10 Oct 2017 06:17:30 +0000 Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e1nr7-0006Dw-2N for xen-devel@lists.xenproject.org; Tue, 10 Oct 2017 06:17:29 +0000 Received: from [193.109.254.147] by server-10.bemta-6.messagelabs.com id 09/C6-07499-8F56CD95; Tue, 10 Oct 2017 06:17:28 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrPKsWRWlGSWpSXmKPExsWSoa/lofs99U6 kwaafkhbft0xmcmD0OPzhCksAYxRrZl5SfkUCa8aVXytZCyaJVbyY0crewNgi1MXIxcEi0Mss 8frjIeYuRk4ORoFIifm/WtlAEkIC7UwSJ5bPZAJJsAnIS+zsvQRmiwgoSdxbNRnMZhbIlVj26 i0jiC0s4CJxrH0KO4jNIqAq8WrZZFYQm1fAQ2Lm53lgcQkBOYmb5zrBlnEKeEr8mfgZLC4EVH P55Vd2iHpBiZMzn7BAzJeQOPjiBTNEr6LEsxsnmUCOkxDoYpSYcv0sE0SzmsS0011MEEWyEkf PzmGBsH0ljt6dDdWwkFHi4qxmdginmV3iSvsJRogqHYnLh99BJS6zS0xaOAWq3Vri4rT5bBB2 gcSaq4/YIIqOsUpMujUZ6igZiXcLO6ASe1gl9i+EuFZIIEni2PwTUGNn8Up097czQjid7BKfr v1kgYSZlMT7HScZJzCqzULy+iwkry9gZFrFqFGcWlSWWqRrZKCXVJSZnlGSm5iZo2toYKaXm1 pcnJiempOYVKyXnJ+7iRGYGBiAYAfjr2UBhxglOZiURHm5E+9ECvEl5adUZiQWZ8QXleakFh9 ilOHgUJLg3ZgClBMsSk1PrUjLzAGmKJi0BAePkghvGUiat7ggMbc4Mx0idYpRl6Pj5t0/TEIs efl5qVLivPtBigRAijJK8+BGwNLlJUZZKWFeRqCjhHgKUotyM0tQ5V8xinMwKgnzzgKZwpOZV wK36RXQEUxARzAW3wA5oiQRISXVwMhaYhC9SuTGphNrc0K3xSwL3F589XBDzLqHvn1+aouu7H TRif6x4Kyon10gH4PlPIYKg9+8UxVYT2lvdw6z9dZvz4/7J79gllizdAEjb52d8tMA4To+24W xswLuV3cH+TS2PtJlipaqnZ670u5kbfndL/fMQtSelPy8OKH4RuqFZ4d8ttXUK7EUZyQaajEX FScCAH4Yg+CSAwAA X-Env-Sender: Manish.Jaggi@cavium.com X-Msg-Ref: server-6.tower-27.messagelabs.com!1507616244!111072603!2 X-Originating-IP: [104.47.42.72] 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 3722 invoked from network); 10 Oct 2017 06:17:27 -0000 Received: from mail-by2nam03on0072.outbound.protection.outlook.com (HELO NAM03-BY2-obe.outbound.protection.outlook.com) (104.47.42.72) by server-6.tower-27.messagelabs.com with AES256-SHA256 encrypted SMTP; 10 Oct 2017 06:17:27 -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=yXsaDR1v7/Q4PKxvBC1QNNvfcpA+Umoo/j+Ro5cU8ss=; b=CxqaUmApR6uR8RpYx4Tpo/zKbrfRYpXwnT31HfkQU0Wxh0V3F4ysGq7nAzdCwqT+NDCCvh721k0uF2T6lauuFtg6bIixiFp5ABqe+IYMz28BSTht+BINgCB32uxMmOVyz1133aw0g05GJWrYvbw3VE5G6tx7lDXUPMVDuqGxMxs= Received: from mjaggi.caveonetworks.com (111.93.218.67) by BLUPR0701MB2068.namprd07.prod.outlook.com (10.163.122.150) 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 06:17:24 +0000 From: mjaggi@caviumnetworks.com To: xen-devel@lists.xenproject.org Date: Tue, 10 Oct 2017 11:46:56 +0530 Message-Id: <1507616218-2478-4-git-send-email-mjaggi@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1507616218-2478-1-git-send-email-mjaggi@caviumnetworks.com> References: <1507616218-2478-1-git-send-email-mjaggi@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: PN1PR01CA0079.INDPRD01.PROD.OUTLOOK.COM (10.174.144.147) To BLUPR0701MB2068.namprd07.prod.outlook.com (10.163.122.150) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8545363e-a811-426a-ebb8-08d50fa69390 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:BLUPR0701MB2068; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB2068; 3:7iG9YdOxOaohPOFDxOIiMwteVPK0X0mVO1AfBaEl/lucXphXMI6BLtyRp4gRoNFQUE3sUaqe2PD3HNsc4N/+YuwUK0VD4qGiX0oElg3vlKt8q97pjVZ5NSEtOPJieP6+CDegN2ozZ7HPHbmIwYsNEiIPoCLG9uWeQKozpRX3zQyhdvSqO8wASstxQVlZxQ0w7Aek36ryuu9Oq9TLTvmAzNFMxZFnBi5dyrPvShc4/1+sI+ss2m7kdCaSnhb9fDNp; 25:fXHGr14tjdco1wIgcwqCAi6CpY9UK33aK7uXuezR+kmYRVccF/QJksHikqN4LN0+ViWOESeUr6uyPtsxWK1mt8DRSb8JaGPq/qhHqTh5HxdZcty3N7p8e/57y7sL2UDiboLvXDHNB2Q/gvllUszOlD1XU2jjkQCoUhQV/UhihdsLPhwTgoPF/LQaYZaI/mnzk/3zddqRGisyIpQ9OzkfFUAXwcgpUbo1ur/DTNzwGIdw1cYci5BeLEftAmTmPeczYGfQAF4BfHveZhNtJSOrqsH8Ns/MTOuDdSiSIcDJ5vMN/6MhD8d24N5OL6bknbu6mi6VsXygqVlz33aKmNZztg==; 31:n0X3hnvPD+8BwhZSNNeXs9bRrgfLrAHZCO8f/UJDYcaC6hNj/TT2ZNnB3zpb02Rwdhzt3fsvqJPwU6XhOTyZwzaSDw/a+fmjJmDWm1IOrVEETfA1TbPblaSbI+vF7rmXuH6bfDWDH29mlF45OZUywZheoUoPHlOEzsQzcZgNufpEgTL0vFaahxSHlGV+yeCHCxcz5lpXK18pKchWVPBnU0zCsCwBJNCUSF5wvEgD3PI= X-MS-TrafficTypeDiagnostic: BLUPR0701MB2068: X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB2068; 20:yhQMf69P3JJ4N9fe07ixGjqpYcrsapjZYgpwILo4UioPVxQL64yJTrAaAIze2N9vlodznikWKpuojNuffvcLe5QGzjlmxsHXR+ptpZug8nAQ+YXBbQewpfsIFZcqn9Hzn4RkZO8jsd1UeAP6/FNRPOF53VEGvwAQiZWvr5AskMdRh6TSpeidIPf6Zix3kPR1n/xdGV2tCVE/Ge1279NM5UQT9DzMf4e8divP+xleYBinUFrWRhSELKEFwZmwlX7PVvZzZlkGvGgqi0FaUC9/W9rXl0gAtNE27dPFeHSnXuSFrZqCmXOeLwfiqnzPKhdNsWFqyTU5F2oFiSqM+HqbpUaG9czWU0jnUMoch8n9Q2vGiqWEADf1sUrrkW+DY62nkAVCPz7EEjEMAfX560sIZPfPEaPv9U2Rq1Tg+QMaTyPVI1+I0gSUYRPz3ezjloPgOUqenumT9YDGkGT+zRnJx+0/tw81fmVPdQvgvePZ4rS0QfDfjp0XE+T4TRy3FXM/MU/BHAq2AOpzIvYbY9TdK7rizZ8VFCyfugdHRv/I54HWFfJy8TkFUQ/Gi+PSsoRZ09RXLTmp6FbkDoKclE8V7xmIMCfucjZ9FhYPXJyDXrg=; 4:z5DdFosAU6L4OYhQqRpk2zSL69pB83K4XTCCcR1RyQxroSAIhyBp2l18vZZHsDgdwALos7ZgfxFop5HuYKGwmLHEc7YNdkqn6hh6iz6r2KqtKF97FSyfmZpU+xiXj/X0SvNhF5PE3Msi/AiNt/hMe2Xww4DzBI0T2XvMOi9+IeudqCgdWMSwMdFz/cbeWDZziOL30SgFboUmFsN5ddOsv5UP8dO0jfG/Zaho8JrVfGK0FESpncl1eRLcnq+kzfXPeiSmw4LnJH4RUBOjtzHWUtc9/o6JJyhH0k0aGCryBFU= 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)(3002001)(10201501046)(93006095)(100000703101)(100105400095)(6041248)(20161123558100)(20161123560025)(20161123564025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BLUPR0701MB2068; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BLUPR0701MB2068; X-Forefront-PRVS: 04569283F9 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(346002)(376002)(189002)(199003)(81166006)(81156014)(8676002)(2361001)(101416001)(53936002)(105586002)(107886003)(106356001)(2906002)(2351001)(6666003)(4326008)(5003940100001)(97736004)(53416004)(33646002)(8936002)(50986999)(5660300001)(305945005)(68736007)(9686003)(6512007)(76176999)(66066001)(47776003)(3846002)(6116002)(16586007)(5009440100003)(50466002)(16526018)(48376002)(316002)(2950100002)(69596002)(42882006)(6916009)(36756003)(50226002)(189998001)(6486002)(72206003)(478600001)(25786009)(7736002)(85772001); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB2068; 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; BLUPR0701MB2068; 23:tEy9jvV66MWIqwHMCpV0tMR6Um3+9adBxHuHKMc?= =?us-ascii?Q?3iI+zmKuIrkHzjvbz597tKrhfkfalk+Tj8Oj2qk7CXlejf0/Tyt323dM8GqT?= =?us-ascii?Q?Vy/C3cCdlnRRogf8cbkooKEG+MayHXhjLyvUEJ3soBXkdDxIYWDqcfkgIdxB?= =?us-ascii?Q?IE1xsyR8gW3TWs1liEqLWSpR40t82RwPHcJ97RWKc/ocC2IA+AsXySE+OJNv?= =?us-ascii?Q?JWlexFskhqUWedEih4gm227gmpRz3KjjJ90wqPjeUmXanolPdVajhkoSdUfI?= =?us-ascii?Q?8lyvnDaiY9WaI0JzZ7kIngzcV/1wOpnwCgl0ZJSaK/3jjvlakjJ037iCJoH+?= =?us-ascii?Q?pwxOBzMxk4d3kAnSOPOIa6KbeoUTYbTyOAgJenyC7thTVMeV16Iy3OfII4Qs?= =?us-ascii?Q?WpoISHa6DLt6EVS4y6Eemuk3JSNLNjA87GI7x/BXTQ8l354Ll/rou4Ta7RPe?= =?us-ascii?Q?S6JJWl4kSv0KJILWi4v2ENLt2iCPVet6G7mB7m38gm21q2ArBwNh7jscYf9U?= =?us-ascii?Q?lBfVZzZ3WF5sheKpmZfLGSFF3Xpw8yupCWI8bAU9NvvPJAh02IpSoCVeTT0V?= =?us-ascii?Q?tpvkaP5fpAyspIK/1x27ZJipkXw3kWS2vgZf7auccHNPeZ+PxDwoxL+DzHns?= =?us-ascii?Q?0VS+76QrESm3Gzg93RCZX+3O4LwKxFJOIbG79j7BNuHD/YK7KVKOfC4InioK?= =?us-ascii?Q?NDSNs2DTK6R9LRYB/7xWmyk1ojyhPwW8RJjCb0y/TJ4j/ybwym0nnr0f1RJE?= =?us-ascii?Q?8A8Dljl78WXGzRiXTyr1Shsa9uujrnFy+bYzLrAKr+VvICq2b1MBgqx9Ul4y?= =?us-ascii?Q?RiJh0netrmVeaw+PPL5OCu6NmQjD1LexpssFvDiGgsoqoRODAU1ybL21Y3Ro?= =?us-ascii?Q?NsvqzJvy2IuPhVoI90rALb31iWl4ZgcngzxaBgLMNPAyCWyOvy9qN5xRIhMS?= =?us-ascii?Q?3H+AxTICO3Flshadw1/BW92/tLwzhFGhJfqJGJZ8UzUbe/vjMmBypIm6I0MO?= =?us-ascii?Q?oInJnis0ocXNVIIKKyvIkUW/18TZidkhy8AvM9KaHA4R4rZyMoYq7COYo3Oa?= =?us-ascii?Q?PQmA5iyDh/eQGDVlZH0/pvUK6VAnnCO+PtxDsPDEmQptUdGsSTRKE1DCi3qY?= =?us-ascii?Q?LWro6G5xNdkl09xQ2O5E5WOEhBjYfg7CdOREZFmPYgnyZmQ0add4FyG2ox1g?= =?us-ascii?Q?s3AUa/UCoAlOdB8LygUke7odyWle3Eqxtr1AWoOMcr3SxG8YY41sqkZJiunN?= =?us-ascii?Q?adMTmNTnQK9fMUMQIzjU=3D?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB2068; 6:0Hzc1xTOCPCVq0GMmzotQonS6oQChb4ws2fDXfvTh54GX34YT4g6O+wTBZA7A380ICY8RzPTfKLIO3JfY8YIA1SLzhjUX3j8djZLkQS2wB+rzjEOmNVujCkc4gQarPkEPd7je73ARQol1nOR+FgfD7GzI5g6TMt+c4TSRLBk4trnUHExi5roSaqF83NhilSzp14MRQpDwUp+VS78Me36ZXHjTN2ZuZmCRTfN4N2YXv+2tR6NvzUTifNCs081q14GslREhCpuCDBRav3NbQQX1tsRpmPh+OpNFVQKaa5yPrpja/xlMIuKIY4TUdmcymdKu59xtbLHOx3togXuPm5WTw==; 5:sE4Jaw4PQfggwGlXDpTHvlECN6OeAM5dDB8eH0CYuBtfFzOi16IsXstL6JCqrNE8JTB2BXHYuWDTux1JtKGEnl1Hy2//262AqPpmoi1czc5mvaCT2fzK4XjElcKLXGA2N4IuxZ/9DaippBpSJ1dEmw==; 24:ujhnz528dym0Y1Xxpv7znFqYur4xQ73O5stGOWoK7Tqr9W7YzG1yYjfK8YqPVmGXnI7Gzej16QyfXIRjN8eVuHtr1OoBXNBYZje+BsQKyA0=; 7:dpD4OcW4523EKu1p8I7NAgsiEv8pFdmBcetVSnkqH3aj+YTHxyx8h5k2yKF1Q8KEUUGgnYssHVlnE3KXzIVFDMpaPSXP2+hi0en79C6cSEh962to9KLstUeh4RLPhV71Fu66KYIgRYL8u0b83sfP3sVciJY/lbb5GSh9bjouiudtK5F7yZ9XeX13bGcc5N4PuCqf7KF6RkpMpFYNqq8JKhG51c2WNyKEMqJTJeTeLA8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Oct 2017 06:17:24.0498 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0701MB2068 Cc: Andre.Przywara@arm.com, julien.grall@arm.com, sstabellini@kernel.org, Manish Jaggi Subject: [Xen-devel] [PATCH v5 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 | 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 3023ee5..7746ae8 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;