From patchwork Fri Aug 11 16:55:36 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Manish Jaggi X-Patchwork-Id: 9896365 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 393F860236 for ; Fri, 11 Aug 2017 17:00:59 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 289B6285EB for ; Fri, 11 Aug 2017 17:00:59 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1C95928C72; Fri, 11 Aug 2017 17:00:59 +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 D62B0285EB for ; Fri, 11 Aug 2017 17:00:56 +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 1dgDGl-0004su-Mc; Fri, 11 Aug 2017 16:58:43 +0000 Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dgDGj-0004sP-TN for xen-devel@lists.xenproject.org; Fri, 11 Aug 2017 16:58:42 +0000 Received: from [85.158.137.68] by server-2.bemta-3.messagelabs.com id 67/FA-22472-142ED895; Fri, 11 Aug 2017 16:58:41 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA1WSfUgTcRjH/d1u2ymenJvm09BertSQzTQhI0S sv1Qsiv4I+0dveW2LvbWbtiDCEsPNZgtTUgTfMsM/wkJJQQSVfCuNLMUIXwqxtYysTMMMu9up 2f31vefz/T3P94GHkCh+SVUE67CzNjNjpGVBuP7gnmRN2gd3dkJpt+zISls5lobS+xbf4KfQO anBrLU4cqX6po5hzPo93DHgvSMpRAOhLhRE4JRbAms32nEXCiQQlQ21q8UyASgoJwb3J0r8QE bthk73GCboMIqG6ZZyv5ZQJnjg+4JciCCU1DFYbN8vlHEqGtoflyBBk1QGNKwO+tsAtQvejjo lgj2QyoQ/i2qhrOAt8/ecmGgPhaGqOVzsDtDj9UrEp3thfnIIE7UTQf2MRXwbA5XPXRv1KHg2 UrMx6gSsFXqQsApQExj01rZtgCI5LPTvE7UapjrfbdSb5eAesYg6Dh6Nf/PnBMoKs2uU2GdUC j2t00j0RMJswwtcBE+lUDfnwcVEWuivHZSLoJqEir5GifjjlMPK4IRccCkpFXztGEIeFF29be 3qbWvXIawFxXKsrYC1aZLjtTaDTm83MQajJjEhKd7EchyjY42Mlos/bzE9QfwVBPBfB7q+crw X7SQwOpzMzXJnK0K0lrwreobT59jyjSzXiyIJggbywHuehdpYHeu4YDDyp7SJgQimw8jKWR6T nJUxcQadiIaRhvB51pcxBW62mFlVBBks9KAEkz7fvNVi8yDHUJRKSSI+lCLYytpMBvv/3IciC EQrydfCqGCD2b41yceHwPgQZVn+EHbmH1IVolTZUghdXFr9mTP9vnoyiYxtqMmpWDDcLdBkho VNXR5ISUpq2uHKmi66NHy2rGu09dByZdTSx2hrQqrSmV1WFwO+Ss9oszeioyrdoTla1PCjqfF T909tiu7i6Vfr4+qYgIGH9K3bmfX1My8n829mLF9rnDij7pmbVB/u6jHmzVTROKdnEuMkNo75 C/XoRGiLAwAA X-Env-Sender: Manish.Jaggi@cavium.com X-Msg-Ref: server-10.tower-31.messagelabs.com!1502470718!108950125!1 X-Originating-IP: [104.47.32.55] 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 65490 invoked from network); 11 Aug 2017 16:58:39 -0000 Received: from mail-sn1nam01on0055.outbound.protection.outlook.com (HELO NAM01-SN1-obe.outbound.protection.outlook.com) (104.47.32.55) by server-10.tower-31.messagelabs.com with AES256-SHA256 encrypted SMTP; 11 Aug 2017 16:58:39 -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=vEOJmHGKe1uQnoa3hp1LjZk+YPXv2bW+NwU93nAmf4Q=; b=HAAX/ndrluS3AjtWmCc6WNUQQvmm8015A7TskxmxNlDRjI3zKmf3e9NL+unvpW4o4VCRdTR5JTyyhrXoOnhB4Hi4ekayqpdPFC2w5cD8PMvgoUERrXJRNsSfDftsiWRbN2rSlKKV3sjD7LksTQ+Uu06cKUxN4Gqrat66rlxybmQ= 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.1.1341.17; Fri, 11 Aug 2017 16:58:36 +0000 From: mjaggi@caviumnetworks.com To: xen-devel@lists.xenproject.org Date: Fri, 11 Aug 2017 22:25:36 +0530 Message-Id: <1502470538-20299-4-git-send-email-mjaggi@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1502470538-20299-1-git-send-email-mjaggi@caviumnetworks.com> References: <1502470538-20299-1-git-send-email-mjaggi@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: MA1PR01CA0113.INDPRD01.PROD.OUTLOOK.COM (10.174.56.157) To BY2PR0701MB2071.namprd07.prod.outlook.com (10.163.156.149) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 403fef2a-5f87-4250-9a2d-08d4e0da35e4 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(300000502095)(300135100095)(22001)(2017030254152)(300000503095)(300135400095)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:BY2PR0701MB2071; X-Microsoft-Exchange-Diagnostics: 1; BY2PR0701MB2071; 3:YtR/farfdKyxbNdQaT0EtH2ZgL0rN2Jt44iVSxlAQvx60bxs6gMrsPOfr3n2F1BiXq/9lXPliO/m8KYiNp2a8mK6xm9vBflRPTz0S1QtSo+czvLh2KuekyWhSHfrCLPpUZFioybpcbULQZd5ETbo5M0MpJgxMh9pAq/on8zqtBbA8zLUe6IeeBer2hTIzLQY3dX6HVLMNZa5yXeFwLBmh4TNK4Diaa/sjfstTALobNMSDqlb89R6W6biXLeFwol1; 25:EkHz+dbkkFNgJYlJAzh98pqlOVYsncrLjHHkKhBhCxIYERSeZ63KOzU4o/eVxI1VadeNhow6QNykM7RsL4PJb31Z5iGDgYt/n0SVNXl2dOVS5YVzMjgqniX8AIy0RqMwD57QJGDNsl37MsRgBj7gP4doJbJyzqlBLC+PEVyvtqyZDHF7Z+IeM7iIhXJg3n8x5VMM62Q0tnPADPGcrAjDL2zxfpQLA0O+GGwgjTmUFdOKl3VVaZhTle2DvPsZY04BFNg2n7OnjmyKRArjyT12k0E2HViQFy8/emjvSnxoOzFU48YuB4nvmo3Y6gPzUBoeHxOioyn//WZCvoZ+H8iNFw==; 31:cVA2uPwAAKCYTYm+6wd0W3FxGrEBCcY3LCnFIq+DKD+VfIAzl/rlFyGjF92hwuBP6QfKkdRDjh5j590uomeFZACYqk374zVVZ2JAqP7O2HgpX+FlsH1EWNXf6lLwemI2do16/SFjr9qKWh/Fm0Rl/0AKBVr9NBG6roIW3yrrjtRP4drWrWogMXngPacEm6PPWq3adxaDB0szl/FnQOc5phzi8g6kwIWGXdRnqchiLHY= X-MS-TrafficTypeDiagnostic: BY2PR0701MB2071: X-Microsoft-Exchange-Diagnostics: 1; BY2PR0701MB2071; 20:MoG1IOjCtx5x50H3Fxo39UvF9vDKREXW+eBLJ5IJSzbo1SIjELqUjRgndrw1bqky8gtlVOJuAApvOMnYjdLIL1wG8yn8Vb7Z5++5vTM3AcjCptUy5quh3xSxDu60faFOBsapzhapCgkdZP8GUJ7qo+DweMeDKHG0kUV5EwZrWk4OpWnBtggkgqXFxVk67OeDKOSJNG2sv7ky6rPPXqqb1K7K/B56SFCghATV28GY7hBHqug6nUMqfiWquDuvJRNGv+biOEpj+rkJ1Z6eExzhmx0KBT9ds19seUeOOhzN97zJ7tWPDm6bXc384oHrqRgBLXz86no60ZkUwpyKsmoR3WaZ8DVfAtY390AmP5SSZf57Mph1L1anJyT8SdM28bE2FNM+NkWPYpi72XmaZFLxMZwCXIOzS4+n6S+wEB5KHr6fAzCRoHEquOXySqFYuHhQEMGDwMCOVA59GWIil/n4/g3JqcvlZICZ4AuL0bhksIYh+ruVAWhGGWIYmZgEVX7Lqb6AcKoTnM8xZViTQd9aY7xzT2u/SfZJ6riN36+/5fhdzm0BQG4C0ujZVlpEo7q8DdWsL3NxXfeV53sBEO2xVh3JtJTMvwuQX73m1bwd7UE=; 4:MLbtS5MxwumWHwok8oE+E5E8XUQBwajWyoGCt/BgumddJf8WKQqhNPHs/xHTYVnj4le7NRNeSOnprTzFbDN0sNsWf9n87kbRUnH74PfzaPBZZdHfxDctVUb+8FIr8xfd5QceivknJEY+EztndmJGCbr+YCr7HUWtXWPv0AkwUw/eYlQIgKjgbyoS15IlTqVoJ6av3/IIAbfLdixX59R+dxlYoRPTjgLJ61dpVqi/xwv3NXo6QBfDNnW6e//u3c64 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)(601004)(2401047)(5005006)(8121501046)(93006095)(100000703101)(100105400095)(10201501046)(3002001)(6041248)(20161123560025)(20161123564025)(20161123562025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(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: 03965EFC76 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(7370300001)(4630300001)(6009001)(199003)(189002)(97736004)(2906002)(72206003)(42186005)(33646002)(2361001)(8676002)(6116002)(106356001)(3846002)(68736007)(2351001)(6512007)(9686003)(5003940100001)(81166006)(47776003)(81156014)(53936002)(48376002)(5660300001)(107886003)(105586002)(50466002)(2950100002)(6916009)(110136004)(42882006)(4326008)(50226002)(189998001)(7350300001)(25786009)(53416004)(69596002)(50986999)(76176999)(5009440100003)(6486002)(36756003)(478600001)(7736002)(101416001)(305945005)(66066001)(85772001); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR0701MB2071; 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; BY2PR0701MB2071; 23:8hnvjKxrKK28Lngyp+MY+FndUUh8r37DYEA75nh?= =?us-ascii?Q?EAT5J5bEdhIC2SxJMp3NWH8dCOYvWHM7ZpDqb1jT3qjIgVk9aT7MbpYpuTy1?= =?us-ascii?Q?4JJSzdGaKhRwHa0OGvs42iKbQpIhWzAGZfWdkFPYLo4zRRxiW2piLd2FEKzM?= =?us-ascii?Q?C6RvtR61m6jkU8toHPUti881EZPFepg5R4BtfdSp94uUxLExr6K35vgZ/x2V?= =?us-ascii?Q?RJh87gNRnhHvlRPQZQEKhvADfhfG3ttJawzkZbvV4GSNlxcV97qmv4AdN8Hi?= =?us-ascii?Q?NSdti9fpc1Ck2ePhIO9cklNpOEYJu9+MtLphmlNi7xi9MNwDAYJ/r7p4bIoL?= =?us-ascii?Q?7nMBy0ipi+jbWDDIKnFS6p+1uiNvoZHU4daomJdqhqrY6Dh8VjixzidMfQ0s?= =?us-ascii?Q?dMUbnywNqc1nl3aE2P6SKf+yeGHGaswtlbJl7JtvOPR3nb9YpShMIEKjCh23?= =?us-ascii?Q?9yrY0/IBsABumLleevvmLpfUSSwdeCTuIeB3BT1nd9pdj4ZJCSktqKyOtZCi?= =?us-ascii?Q?qBKKMqs/4qr0PXxfkQcTMkIGWeFGEVYzWfaDTL80I5ifRZ91tsEawLKlTOkV?= =?us-ascii?Q?N3PjmmKugqzVeppWVCx2m1Qt7W2ptGKAF1gU92a4UngXd+jWkXhuoQ0AghSg?= =?us-ascii?Q?haiLukDuEmWHeOcnBHxWkoRPLn/DLgCHgbJ0vOZNG39j9OSn2caMaUfJnaZu?= =?us-ascii?Q?6LeuY5ji3gns6+IIucLJc1glm3rGkJEc9gBGuWWrKhmUM+ADBpgM3BvAb6NH?= =?us-ascii?Q?RUZZg891zCxlbki/kfDA3Rg1kybgGWJwX0ej4E1EWabZeLszPKtLokBx9kkZ?= =?us-ascii?Q?nvfxNDzFnG+U1RGGyfGk5Hcg9k1Q89cBwkTkasWYYQyrPRYDY/k2B92WpcAV?= =?us-ascii?Q?PeuZqdlnyua6OnpTt+Bi1l7Sau8PoZc8EwI9U7M9agvG/RelaWOEcYygZzXO?= =?us-ascii?Q?oPD6oxoIw0lSNSBXGG/rZAFantOaNaVNJecHGQV7HNPxTkP8W0sbzOexaTpW?= =?us-ascii?Q?XBlLc+DYQABq/GqSgw9wMg9Kx1Lz9mseOFBPJMqzc4R+4xYsm0G1OA2xIVBS?= =?us-ascii?Q?HqjuUHNE/nNVkdQIozBigW7jZZwnKcg+Eb47BSlTSCqPYvhxTa6hXqoNLE05?= =?us-ascii?Q?kQbyKITAy7ab+OACm/DbYfip12jl5QH3ltMYGQkm6M02NFyX99uVQB5gsErz?= =?us-ascii?Q?v/4Uns27UYaJOOqGlZYY/qAzKBpq0zFs2kUtbnJbRYHmQrC8byiOiC+maA1u?= =?us-ascii?Q?ChLFpF/0wqsxUEmdya7w=3D?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR0701MB2071; 6:EvkqoiYBllms8LrOoaolw1CDmvrJqgGd2maQtaxnsVYtj9wZ9FjLJ53GgMajkpQalHD3Hn6Sk2yY1Y4Z+cI6F13r6L7RNvxklo5TmVRFghpjjrTGDpbAktvzOCMR9VYp3fN5kxlXqj6DphL27Kr8LPsEajCUUKX+Fe7NLpmcEzkP5kXszaHq86mL8QOXe6X1Rn+A350ZYk1IH7inNrxnTPjYK4K2rFd/AwLLDEsXCfkBC8jEwxMEryMgwlXlh5+oJI0/ITxFZsb1eNUdlvV8dSefQImyq/nQ+6ADO+Pr4CDxRtenSGaLuSos9d8V0j/LgldyvWnITfGm51Q/1dYarQ==; 5:xPrdntvd/IXNC504g+JyDuG6yalerGZdmWRLQYYx3oheMzAiVrKGXHkp34zvpXGXwLKeg5P/XXI/D7BfU89q5K/kURaomOD9gaylosyNdQBQ7vzMPQp9kIYdAicj79jaa+CDIeJRTalQHzMCYg2yUQ==; 24:/So25e7JfzY45Mu3d/WptWrHsc2+2vH2GJP2Tv8pYCJ15r4AO91ov9vhmLM70OmkyPVSPx5EXxxkovlxxI+m3lg6oklO/iGW4juCbHCra+0=; 7:8tlw9X+HtMch2bjVRkqT5p2s0qbFdaVEWsNWbDEQkdo64VGsv20ZdCsBqM/3wbWDlfqDXW6I7SXhw3mMwscaFCBm8TMn+C05Q8ITo2GDpaQTk6OwMx4nxHqGGOjH1sh/eeThgj1uRruVUInK8nYlff/ZNiGiJnaNE5Fy8NcEl3MK8EokGVXfx/uEe4kvhzKtci4u9qEdKFmVliZsKc3ENm4vsnxq1xdufB5R2rxqxyg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Aug 2017 16:58:36.2435 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR0701MB2071 Cc: Andre.Przywara@arm.com, julien.grall@arm.com, sstabellini@kernel.org, Manish Jaggi Subject: [Xen-devel] [PATCH 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. Added function gicv3_its_deny_access. Signed-off-by: Manish Jaggi --- xen/arch/arm/gic-v3-its.c | 19 +++++++++++++++++++ xen/arch/arm/gic-v3.c | 7 +++++++ xen/include/asm-arm/gic_v3_its.h | 8 ++++++++ 3 files changed, 34 insertions(+) diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c index c4f1288..f584d33 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 @@ -905,6 +906,24 @@ 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 ) + 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 0be8942..045d20d 100644 --- a/xen/arch/arm/gic-v3.c +++ b/xen/arch/arm/gic-v3.c @@ -1308,6 +1308,13 @@ static int gicv3_iomem_deny_access(const struct domain *d) if ( rc ) return rc; + if ( gicv3_its_host_has_its() ) + { + 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 b9d8957..a673fba 100644 --- a/xen/include/asm-arm/gic_v3_its.h +++ b/xen/include/asm-arm/gic_v3_its.h @@ -139,6 +139,9 @@ void gicv3_its_dt_init(const struct dt_device_node *node); int gicv3_its_acpi_init(struct acpi_subtable_header *header, const unsigned long end); #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); @@ -208,6 +211,11 @@ static inline int gicv3_its_acpi_init(struct acpi_subtable_header *header, } #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;