From patchwork Thu Jun 8 12:38:51 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Manish Jaggi X-Patchwork-Id: 9774595 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 0537C6034B for ; Thu, 8 Jun 2017 12:41:41 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E9C24284D2 for ; Thu, 8 Jun 2017 12:41:40 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id DE7992854F; Thu, 8 Jun 2017 12:41:40 +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=-1.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_BL_SPAMCOP_NET, RCVD_IN_DNSWL_MED, RCVD_IN_SORBS_WEB, T_DKIM_INVALID autolearn=no 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 33F7F284D2 for ; Thu, 8 Jun 2017 12:41:40 +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 1dIwie-0005eR-56; Thu, 08 Jun 2017 12:39:20 +0000 Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dIwib-0005eC-Vd for xen-devel@lists.xenproject.org; Thu, 08 Jun 2017 12:39:18 +0000 Received: from [193.109.254.147] by server-2.bemta-6.messagelabs.com id 03/67-03058-57549395; Thu, 08 Jun 2017 12:39:17 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpgk+JIrShJLcpLzFFi42LJ0Nc01C1xtYw 0uLyKz+L7lslMDowehz9cYQlgjGLNzEvKr0hgzViy8wJzwQT7inP/JjA3MO7W62Lk4mAR6GWW OH5yMQuIwyjQxyjRve08axcjJ4eQwF9GiceP7EFsEYFsid/7f4EVMQtsZ5K4O2caC0iCTUBP4 vunfewgtrCAh8Se/YfAbF4BV4lJ0w4zg9gsAioS79fMZgKxRQWiJa6/PsQIUSMocXLmE7A5zA JmEvM2P2SGsOUltr+dA2ZLCChKPLtxkglksYRAF6PE5SVzWCCuU5OYdrqLCaJIVuLoWYi4hIC OxN2dt6FsX4mX3XuABnEA2UUSq5/wQsz5zyaxtvcZO4Szgl3iSU8fI0RDgcS8yZ/ZIGwtiXVX PzJDFO1llXizo5sNwmnjl7jTMg+qSkbi57xfUInfLBL/F15jgXAaBSSeP34K5ZxnkTg+/R4rh LOcVWLO8X5mSJhJSbzfcZJxAqPaLKQgmYUUJLOQgmQBI/MqRo3i1KKy1CJdYwO9pKLM9IyS3M TMHF1DAzO93NTi4sT01JzEpGK95PzcTYzAlMEABDsY/64NPMQoycGkJMqrKGAZKcSXlJ9SmZF YnBFfVJqTWnyIUYaDQ0mCd4MLUE6wKDU9tSItMweYvGDSEhw8SiK8+k5Aad7igsTc4sx0iNQp RkUpcd77IH0CIImM0jy4NljCvMQoKyXMywh0iBBPQWpRbmYJqvwrRnEORiVh3jRnoCk8mXklc NNfAS1mAlq85J0FyOKSRISUVANj1+kYoaNTtRsZJ1SeL5thMinDzInv0Ca24oP5u5V/hypslp w9V+ScRu60A2yqkyxXckfHKa7JE2jikJWR4Zu2bFZcRHyJodOSJXcrtOXECwpE79d1cSs7hAl WTXnxX3S5odaaMytq/N3bg/8oMYRsSI9zs2dx/TnP8dLXOzJMnDy3WeZbZCuxFGckGmoxFxUn AgCLXt/skwMAAA== X-Env-Sender: Manish.Jaggi@cavium.com X-Msg-Ref: server-4.tower-27.messagelabs.com!1496925554!105907512!1 X-Originating-IP: [104.47.41.49] X-SpamReason: No, hits=0.0 required=7.0 tests= X-StarScan-Received: X-StarScan-Version: 9.4.19; banners=-,-,- X-VirusChecked: Checked Received: (qmail 9369 invoked from network); 8 Jun 2017 12:39:15 -0000 Received: from mail-dm3nam03on0049.outbound.protection.outlook.com (HELO NAM03-DM3-obe.outbound.protection.outlook.com) (104.47.41.49) by server-4.tower-27.messagelabs.com with AES256-SHA256 encrypted SMTP; 8 Jun 2017 12:39:15 -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=NMmq/QPW3dU3j7oP9kBCeR/SsKLuOGPOhx7eRW5FMwU=; b=VtGgJsXaEPhBLaXevHI/ejC7M/Zoy2qoMg2xilQ3waBp2jVxRkjSyXUp9QcyNdCMX3Zz9K2YJ2lGoohc7V3Rcr9XCNrjURd2KipjJPmqwN4lKuAxQzvdQdMYXtVgLSpiTodbIjIrsQ7PVrAuRiKQApt5E6tRFw2jbkGUINvJcIk= Received: from [10.160.0.45] (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_128_CBC_SHA256_P256) id 15.1.1157.12; Thu, 8 Jun 2017 12:39:05 +0000 To: "xen-devel@lists.xenproject.org" , Julien Grall From: Manish Jaggi Message-ID: <1409218d-78bd-6371-64d7-b25b423ed04d@caviumnetworks.com> Date: Thu, 8 Jun 2017 18:08:51 +0530 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: PN1PR01CA0080.INDPRD01.PROD.OUTLOOK.COM (10.174.144.148) To BY2PR0701MB2071.namprd07.prod.outlook.com (10.163.156.149) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY2PR0701MB2071: X-MS-Office365-Filtering-Correlation-Id: 7d4c40a1-89fa-4e80-d2fe-08d4ae6b5d99 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:BY2PR0701MB2071; X-Microsoft-Exchange-Diagnostics: 1; BY2PR0701MB2071; 3:EHC/myOO79o3/t6ff/OqUns4j1Kl6Uqr4ghzeZMR1p6LpROerR8PYORxgSlG9iHja6EwAh82TSY710ZjdFLe26XqVlGFhke7QFbetgADnk/Z+lRCqfWjDa73ATX+sGUxWAOU+x0LoIHApIaML7WVf9RFTiVaLJR+iORV75oGfBl4C7XPt+WEJ6QPcN9n0czj99IZs2EPYuHX4sC0JTFwlyHlyGAi9QQE/C7j3KpPU3p2FnMPNHCVp33noX73QVk3qH4CpoS5Kat0/tQZB4W8V7SSI0ObFLEHwMLJTEPStt1P3+Pl+/g1XyxdL6gOROHchQGCF7ww7KM4RLKiPAeCjw==; 25:6DlXk6DpMvCFznYelt19YuhBxIiwDrvAlaFCOg8v3EHo7xgHlIhD5je/Zoy3kW0cj3BcQVKDir66oyuei47vwmUegSqCgPcQxzkMXcruWxp8t016BArxsHWYzk/kEUFhTigSpkJK2A+/2fqBamOqG2fA/AVJJXoTh4UnUY1sPSODEa3xNHYIXNrd2aeNBrM4G+szkZ8WWIMRdzNXFm1KiuRxzwv2Twlz9GFXJ0gDDQ/vrAHVmmVlBMZiANRV4j0Gm4fTjruj04f0jB0aFswLqPhmhhpN1U4pBSu31mHiXaGkYtDXQlQN5fAtw51X/HOVyRvAbOQqVQ+4P4Cu1TYt18hEq3NJ07ZxCkOObSao9mx69aOLW7WjknU9GSJI/SgIDP7VTvwYlfee1sM4OBZOo2rSnG9kKbYla1xqvleey8rBrrrb6m2nMkiboM6oiP3OgJLTG8GqeQraxr4h1vXMDGfOVpXRcAZI0P6aTQN7FBk= X-Microsoft-Exchange-Diagnostics: 1; BY2PR0701MB2071; 31:zXPXod/ot644MxJa4ZDDWsUzx+zlddn65vEIStSvMKbcB8aKs0FNUqoOxngamXXQqmDd98iflMCYm2l8WwITU7opPcYblk63anXetyVj2j+YUH8yRVDKA2qULvbes9rGkwccAlzNghz12ndRLKaFGW8XilKA3YrPu26mNi39ewn2ygXVtQfs1zlkPQU2QYEif0Q3Qmj1AN5uZiQfCViDlAkjd8WPvaO6ZGNThS8wcGw+yFRCIrvcEblI/awFgflE; 20:t0g040zZadml4Wm/TaXr5EQGZnJ/nNsO6wsUlqXQkNTtbsnrNdySsIVD/FOsLqECy3HsQbYWVVq21gdyn6DgDtE1VU+5JuKkuYB9BfMwj3gTYQ3EswZg/xHrcEY8gdVhfEAY6aq9OC4M2KEAFaIIL3AupIKVup481Wfe/rgu758bRd54rfyNiu1YB6HVNWWE741j7ZlAQMAbCDo/jyuxiti/d84gWTlRXO9vRtF120a9BI7MT0yIl/SWJ4lJcPttSBqUkIChojJ3GXrWngIt15rt+jsWIAGpu9WcUP499K23RsWH7rY9vPyeBiCYDBXeBQFMKjl7ufz1mfDckcWbG+eJsxPKdxxOPB8xW/9HqIncad7RY9WFZQh/Pqml6Ezk43wTMpMrkaYbeIYusjclPh9mpUMvySV+2KWUIXvGmXn5oa5eJenwN1geHuj9y5RhVBNs29az3say+wQRzXNSRRHdFwneomBQzzUo+xwQOsxsY/cTNmU0+FBrjJuG2rR5STaQdB7kGv3qN9clnEBaNbEq+Qxtg/JcR3FPxDmhfTBGHVK+nuTyhX5gXxgoDGXS2x7BnbUYpF5VzGyc51feWttrI6mvvERNh2qpF3Aoy5s= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(100000703101)(100105400095)(93006095)(6041248)(20161123564025)(20161123560025)(20161123562025)(20161123555025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(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-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCWTJQUjA3MDFNQjIwNzE7NDpTbjNQY3RTQzNmREVyNXdsMHd5VkF3YVJR?= =?utf-8?B?MFVFeEZGU0h6V25PZXpsOUJCb3FaS21xOXcybk0wQ3JIL3RPc2xJRS9BaVps?= =?utf-8?B?VkpsMVBlY1VVcTZtSm1yN2pCaVZET29vaXBvc056eE9BQ0pXZnpUbTdXQjFV?= =?utf-8?B?WFdpWnZ1Q1o3dSsxdlpHd0R5TXBYY00xUm5zbHgvS2hxVFMvNG1jNEJpMWlw?= =?utf-8?B?SUlMVGE2cmxOMkZhdENPZ2N3bmFxNC9ROFZaeE1ZRE5GWWt2RHRDaHArZ1Fj?= =?utf-8?B?T1NvV2pXNDQ0R1hZOGl4OEdka3hQdktlb3Zsc3FlOEE1TmVJRlZMZ0QwaGZC?= =?utf-8?B?MUZKVmdYN0o2ZEU0dk9ONHpiTFZpTXZpUDNPM281UFVYU3VkYktvcHM2OCs4?= =?utf-8?B?SjhUYXppckcwM2ZkNTV2R0ZJTE41MXNFU1JLSjhuMGNoL3FvVitkcFpzdXNX?= =?utf-8?B?YWlNVWREbktDV1NXQU9aL0RPZGZOZjFrTEhxdTBKZHNrSHR4emtydVFLRUti?= =?utf-8?B?Y1F5UnU5ZlVXU1dEbUhLbFV0K2VDVVp0dGJrU0t0cWg1aFRlb1hzaEdlelI1?= =?utf-8?B?TklTWW1rZUhTaVZKbVQ0Nk41cFlpS0RpbWJ6ODk3WDF2MEpyNG92dFo2M2Iw?= =?utf-8?B?N3hVTjBQanFRV1FoQU5ZNHZKeWs1QXQrTnV6TTlKcTdKYk5SM1UxZWdLYWhl?= =?utf-8?B?d3k0NUlBRVNwUnMvRE16cktoMlpPWTZSWlgwY25ST0ppL0R2ZHNZZDl0TFUr?= =?utf-8?B?ZUNMbUJWeFRzbVFXMjJnSUllMC9kR1gwWDBSTFVvNjdEbFJhR2NobDlRMlBY?= =?utf-8?B?RG1BV3VTWk40N1p3Vzd5YStiQ0FndHlKUzFPYXBwb2VsT2FiY2ZITmNweEpp?= =?utf-8?B?TVVUaUdFUVFBUGJWUm5SUHdlcllDOElIdlBnbVd0SUNteWZiWC9xREhXSERP?= =?utf-8?B?QzdYaXNpWno4Y3M5L3AwVFRTbW5IcE0rQ1pzYlU1Zmh3VFdxQjV3T2RJS0xi?= =?utf-8?B?K1pmbFJWL3ZuRXUyZ1dkOXZHSFdiSEZwWDV0TTZnMG1QOVlHQXZoYUtRcjVY?= =?utf-8?B?YUE0TGdOUUJqQlZGTHhnQ2FQb0ZzQW5OTHNHeWJxUjlidWl6OFArcjZ3Z2k3?= =?utf-8?B?ZkNDak8xYWxWRXlOUHliVkpFZ0l4OHJTUGRGU0Q0dHZRNkVVSXd4TDBtWXJE?= =?utf-8?B?S1Q4NjM3RllybUhsMXdOeGZlKzhRT3BsK1ZJWk91Z1NiaklLRE1oTnRXZVJZ?= =?utf-8?B?eEdxYWNTMzBrSzgrVkk3R0hwVHpGMVpKNlNhOEZOQXRrTU4vSVNOV1hGOHFL?= =?utf-8?B?TWk1c3ZJNDhPSWdDQmw5eHdCZmIyWWdkQXdDQnU5Q2RkZWVvZDlJQnpWQ1hO?= =?utf-8?B?NndMZ2JWbmlrUElrZ3F4bWZCdFF4SWQ1L1pQSDVSd3pZU2hDWmlJZ2YvQXFw?= =?utf-8?B?NW10RzhGdWVvRVpQNDlnVCt4a1NwQlR5QzZBRjlJRTVMN09mMWV1YnBlSGNI?= =?utf-8?Q?TURyiuF4NL9yiRYHgmw+Tqksb4=3D?= X-Forefront-PRVS: 0332AACBC3 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6049001)(6009001)(39450400003)(39840400002)(39410400002)(39400400002)(39850400002)(65826007)(2501003)(50986999)(54356999)(36756003)(189998001)(72206003)(42186005)(31686004)(33646002)(3846002)(478600001)(5009440100003)(2906002)(5660300001)(230700001)(23676002)(7416002)(81166006)(8676002)(42882006)(6666003)(7736002)(305945005)(575784001)(65956001)(65806001)(90366009)(6486002)(77096006)(47776003)(38730400002)(53936002)(64126003)(25786009)(66066001)(54906002)(4326008)(31696002); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR0701MB2071; H:[10.160.0.45]; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCWTJQUjA3MDFNQjIwNzE7MjM6YUtMVGN2T2NYeGMxaDJFamcwNzNodUZP?= =?utf-8?B?T2dqZTNDaHN1QmRkNnJ0cTNURVhPSHZWRnhWMkpKK2s5STcyM25Lbjg0RDJn?= =?utf-8?B?K3BGLzF0enhPZittdmJoZVB0ZkJsQWVGWlJMeWxPS0l3ZEZRbllHZUpLbEgr?= =?utf-8?B?SG03d1ZZWkE5YVlRTFhDWWhnSGU3VnpxeVZ5SGp6Ry8wU2pOSjM5VUxFTnlQ?= =?utf-8?B?dnQraXk1RkJXVDVrKzRWdXhac2d3YjQzOFcyVk9oS01Ec201TzZmZmxPWmRY?= =?utf-8?B?S1M1UWI4YXFYNjlQQVJyZzBTUURaejg1VmNXUXZwWThBZzNGdDNSRk1iOUdh?= =?utf-8?B?c0FUaGVBL2R1R2VTVjJXSEREUjdSUU5KWnNSMElwZm83SEJobWhjN2EzRzQz?= =?utf-8?B?M2theWVOV0V0amxEOXc4c2xVUjYzVEhOVVNLSFBSZzU5UWZNOWdHNmhwM2N2?= =?utf-8?B?K2E3YnpCcDZJQ3NkZ1I4UmVCZzhpSXhyb2Z0QVBORi9CRWpubWNKVW9rVFNi?= =?utf-8?B?dm5MRUpJWUh0L3c3YVdaY3dCMkEraW9OQUg0c2hEQVNwc3JVdFRwek9aS0oz?= =?utf-8?B?K1JsbkhsbG5yQ2pFbVJSRnZQWDd0U3hQaWpSRmY4U0hBc2w5ZlNyNWV1UlZW?= =?utf-8?B?alJuc0xrckR4Mzh1YTlMUVV6Uk9ZUUhyblhaVE5IQkIvRlJRTGhEWG10OWJS?= =?utf-8?B?VXh3YWZYRFlPb2RWeGl1MEJiRGJhNkViNzhOanRka0xLSmsvcTE0dE5PWXF1?= =?utf-8?B?ZkdPMTVBZHYzcUtEUHFwSjQ2Z25XUUVDekx0aTI0dUIxSW14N3FpMmExSmE1?= =?utf-8?B?MGJRcm9JK3p5eXRQczFFdG9sWTY2d2R2M1RxUXh6WVpwTWROcUgxRndvTlEy?= =?utf-8?B?dllHSW1BbGFBT3ZzMWFvWVVqNXlUVkNYeUZ3d3ZHeFBKenY0SUM0bWM3M0hJ?= =?utf-8?B?RDFlRmI4RTNHb0ttV2Uvd0hhdnF4ellWS1NKRE4vWkVTbnZyckI2YkIxT2Q2?= =?utf-8?B?WHQ5RnVpQ0ViU3k5QndRUWg3WkhabmRCdFViRzBpbm1BVWh5WldLN055ZTl1?= =?utf-8?B?UlpwV2NOOU1qdThzeU52U1YvZlFPTUZwd2tDRTl0YjhoM1Z5MnRCakJOWk5n?= =?utf-8?B?YzA1b1hMSUVhZjBxWmhkQnZyUFhzeXBUUXpVMDlVcEtDS0c0eDFSUXlWZVo5?= =?utf-8?B?ZjBHaUx2Z25ZOXVGUGNYWnJnMnZmMHVaSTV2MXRsU2RqeXZYdHpNN05lSyti?= =?utf-8?B?cjhRMTBzd2ZSZURNUWhZbkdoMkFtUDNJM2RGVHJ0UVExa3BhYXFvR1M1N1Vp?= =?utf-8?B?aFZqbjNLZFJYMkJlU3hFUTcydkhzM0YxVWFBQ3Vsbklua0pYOERDbklrbnhs?= =?utf-8?B?dzN0OFA1R0RndHlBUW9DdUQ4Z3JVdjFySTVaSkZjM3lqaXQ5cmIzMms4TlZH?= =?utf-8?B?V2ZjUHN3UytobUNQemlKUWhoYy9ybFM5eERzYzViQzdSOXFyMUFxQ3lmTlFO?= =?utf-8?B?bFA2RVhzKzQ5YUtkWWpyRis4WDBPSWllUXFCVHc4MUQvbzZzczFYMTlQeGVv?= =?utf-8?B?Wjd3am5hRTQwNldWVkh0enhScC92TEVmaEh1cnFYNm9IYm5xQnFsSWlQNk1k?= =?utf-8?Q?s=3D?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR0701MB2071; 6:dGyG9d63kkcuc8LG4J7gGulVHcxECDjl5N2l+6ppdH/fKZasMvTXweO7at5vUkN8Q6LBFswoaw7chWQIEs9NTWmrQkJm7pJ7ejnaFTwGwkO/oLU+cTX+FKocvlX1EsHWT3aHDCgYWyIsKpOtA6iuzRmqz2nC6GNXj6t+k5PcVI4elBjaphRxrEhfsAi3r5RWNY+JE/KEl9o4pGW+qb0hEaaiaXDdBqBLE42ILTQISTlTKRYg3JgWcfDc5G21e9xXnlBuHZjH5qB+Pn/c+4gjTX4/UsDh/vQiWAf1umicj9QAqDoCFNuMOSIWXraIsmf8lmjxPKj3XGmrLCi9+5WLsB8Ojn0ZkLkmotno5cfTsIdChcbuMeO2ubb2GRrnvxKfH61VHWg/EJP9sYQKKNmHpzecdrGblrO1ck+tQyRq0vxEdwSrZN+9MJh8eunTyH4LbHcZpRqwuuu2Ai/j3hYb0UN5xkDI0kYGrDFcMZoUH4xPcSINUcRhUy54aDFH0ofXf3ubxW14MGi3mPYa217vsg== X-Microsoft-Exchange-Diagnostics: 1; BY2PR0701MB2071; 5:ggsi9054c/Q3N7XZaal8hfa0qefyyp5wqx+hJ+q5NmTLQuKzlRDa9v4D7SeHSXjMFZiEZc4vdw/GqTaU4Od25/kKKg7cTgdFVc/15y+l1XLvp6gFcxFYmExDCXx5DUmanfqkF3lhgi34f+DRr0P7iG3wZtpFnWge/gkElIrTaA0t+GCwNDsZG+gPUf8os6Jx8F0pxEee/A/b7hC0mNzDJvbquoA+F8GBQFI9WdmuRTWugDmAlHabU6uwuXcCrLXVXncBMq4oLxN63eCwzQ6p+e+iEATw8aHtT6fPr9LRZyuEHyAKwsR+ocAv7cdL4I3Ps423O9/d4Ymtn4pPBfZL4u4EZKOR6g6SKw5T98cL/xyh9fEVeDjMILjkDXwtbN9+wDh1fpLVFS02oKzWe+pjDBKINOxJfty2+gi26jDmBeHI7HJcPAzJZvGfTLK+bSn1/U63M1L4qetVcvFA1NFoSU+a10zpU6rr+PlULqMvqg22eFR4aY7i9Cy1uH7be5cc; 24:cxp3z9m/IglZ8iuPXOM4dJU2xDiVG52Qx8/ISw8voPrThlYpyypnv5rCrYlaQmM2AzSZrxtWD5eIIOr60UZX1y+9GWP3I+czJJAhP68o8kA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY2PR0701MB2071; 7:CTRmIhK4QAflrL4G3PS9Irsd29nf8Y6l2H+l93oQlZpOfDXc431MTioMiA3ZFl5A3wx5REOGjJxRsMWw/L9s8tMKvbkDQY79/4Qis0FI8vW0MpcZ85y+JoMcnKr545kkQV0spxXKz1B4q9kh9P1lE8MW8FY3EyB86kpRMs5qj1ymiYf6Kzd0rFF1MzsueUUamVP07ys95FECc+1PepRLyLUT5r+JhxZk6MgmWr14b2XFhF7vk/QpzBMoDAYZuZ5/4F8mX66HBfcQBEix6aD8RddK88aM4PadreTrJFagqzGuVlwZVtEdH9eJwlPG6CvvjFZfYL2tE203OAKPF4FRkw== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2017 12:39:05.8832 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR0701MB2071 Cc: Stefano Stabellini , Steve Capper , Andre Przywara , Jiandi An , Punit Agrawal , "Goel, Sameer" , nd@arm.com, Charles Garcia-Tobin Subject: [Xen-devel] [RFC] [PATCH] arm-acpi: Hide SMMU from IORT for hardware domain 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 This patch disables the smmu node in IORT table for hardware domain. Also patches the output_base of pci_rc id_array with output_base of smmu node id_array. Signed-off-by: Manish Jaggi --- xen/arch/arm/domain_build.c | 142 +++++++++++++++++++++++++++++++++++++++++++- xen/include/acpi/actbl2.h | 3 +- xen/include/asm-arm/acpi.h | 1 + 3 files changed, 144 insertions(+), 2 deletions(-) diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index d6d6c94..9f41d0e 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -32,6 +32,7 @@ integer_param("dom0_max_vcpus", opt_dom0_max_vcpus); int dom0_11_mapping = 1; static u64 __initdata dom0_mem; +static u8 *iort_base_ptr; static void __init parse_dom0_mem(const char *s) { @@ -1336,6 +1337,96 @@ static int prepare_dtb(struct domain *d, struct kernel_info *kinfo) #ifdef CONFIG_ACPI #define ACPI_DOM0_FDT_MIN_SIZE 4096 +static void patch_output_ref(struct acpi_iort_id_mapping *pci_idmap, + struct acpi_iort_node *smmu_node) +{ + struct acpi_iort_id_mapping *idmap = NULL; + int i; + for (i=0; i < smmu_node->mapping_count; i++) { + if(!idmap) + idmap = (struct acpi_iort_id_mapping*)((u8*)smmu_node + + smmu_node->mapping_offset); + else + idmap++; + + if (pci_idmap->output_base == idmap->input_base) { + pci_idmap->output_base = idmap->output_base; + pci_idmap->output_reference = idmap->output_reference; + } + } +} + +static void fixup_pcirc_node(struct acpi_iort_node *node) +{ + struct acpi_iort_id_mapping *idmap = NULL; + struct acpi_iort_node *onode; + int i=0; + + for (i=0; i < node->mapping_count; i++) { + if(!idmap) + idmap = (struct acpi_iort_id_mapping*)((u8*)node + + + node->mapping_offset); + else + idmap++; + + onode = (struct acpi_iort_node*)(iort_base_ptr + + idmap->output_reference); + switch (onode->type) + { + case ACPI_IORT_NODE_ITS_GROUP: + continue; + case ACPI_IORT_NODE_SMMU: + case ACPI_IORT_NODE_SMMU_V3: + patch_output_ref(idmap, onode); + break; + } + } +} + +static int hide_smmu_iort(void) +{ + u32 i; + u32 node_offset = 0; + struct acpi_table_iort *iort_table; + struct acpi_iort_node *node = NULL; + + iort_table = (struct acpi_table_iort *)iort_base_ptr; + + for (i=0; i < iort_table->node_count; i++) { + if (!node){ + node = (struct acpi_iort_node *)(iort_base_ptr + + iort_table->node_offset); + node_offset = iort_table->node_offset; + } else { + node = (struct acpi_iort_node *)(iort_base_ptr + + node_offset); + } + + node_offset += node->length; + if (node->type == ACPI_IORT_NODE_PCI_ROOT_COMPLEX) + fixup_pcirc_node(node); + } + + node_offset = 0; + node = NULL; + for (i=0; i < iort_table->node_count; i++) { + if (!node){ + node = (struct acpi_iort_node *)(iort_base_ptr + + iort_table->node_offset); + node_offset = iort_table->node_offset; + } else { + node = (struct acpi_iort_node *)(iort_base_ptr + + node_offset); + } + node_offset += node->length; + if ((node->type == ACPI_IORT_NODE_SMMU) || + (node->type == ACPI_IORT_NODE_SMMU_V3)) + node->type = ACPI_IORT_NODE_RESERVED; + } + + return 0; +} + static int acpi_iomem_deny_access(struct domain *d) { acpi_status status; @@ -1348,7 +1439,12 @@ static int acpi_iomem_deny_access(struct domain *d) if ( rc ) return rc; - /* TODO: Deny MMIO access for SMMU, GIC ITS */ + /* Hide SMMU from IORT */ + rc = hide_smmu_iort(); + if (rc) + return rc; + + /* Deny MMIO access for GIC ITS */ status = acpi_get_table(ACPI_SIG_SPCR, 0, (struct acpi_table_header **)&spcr); @@ -1646,6 +1742,8 @@ static int acpi_create_xsdt(struct domain *d, struct membank tbl_add[]) ACPI_SIG_FADT, tbl_add[TBL_FADT].start); acpi_xsdt_modify_entry(xsdt->table_offset_entry, entry_count, ACPI_SIG_MADT, tbl_add[TBL_MADT].start); + acpi_xsdt_modify_entry(xsdt->table_offset_entry, entry_count, + ACPI_SIG_IORT, tbl_add[TBL_IORT].start); xsdt->table_offset_entry[entry_count] = tbl_add[TBL_STAO].start; xsdt->header.length = table_size; @@ -1794,11 +1892,23 @@ static int estimate_acpi_efi_size(struct domain *d, struct kernel_info *kinfo) { size_t efi_size, acpi_size, madt_size; u64 addr; + acpi_status status; struct acpi_table_rsdp *rsdp_tbl; struct acpi_table_header *table; + struct acpi_table_header *iort_table; efi_size = estimate_efi_size(kinfo->mem.nr_banks); + status = acpi_get_table(ACPI_SIG_IORT, 0, &iort_table); + + if ( ACPI_FAILURE(status) ) + { + const char *msg = acpi_format_exception(status); + + printk("Failed to get IORT table, %s\n", msg); + return -EINVAL; + } + acpi_size = ROUNDUP(sizeof(struct acpi_table_fadt), 8); acpi_size += ROUNDUP(sizeof(struct acpi_table_stao), 8); @@ -1839,6 +1949,8 @@ static int estimate_acpi_efi_size(struct domain *d, struct kernel_info *kinfo) acpi_size += ROUNDUP(table->length + sizeof(u64), 8); acpi_os_unmap_memory(table, sizeof(struct acpi_table_header)); + /* Add size of iort */ + acpi_size += iort_table->length; acpi_size += ROUNDUP(sizeof(struct acpi_table_rsdp), 8); d->arch.efi_acpi_len = PAGE_ALIGN(ROUNDUP(efi_size, 8) + ROUNDUP(acpi_size, 8)); @@ -1846,6 +1958,30 @@ static int estimate_acpi_efi_size(struct domain *d, struct kernel_info *kinfo) return 0; } +static int acpi_create_iort(struct domain *d, struct membank tbl_add[]) +{ + struct acpi_table_header *table; + acpi_status status; + + status = acpi_get_table(ACPI_SIG_IORT, 0, + (struct acpi_table_header **)&table); + if ( ACPI_FAILURE(status) ) + { + printk("Failed to get IORT table\n"); + return -EINVAL; + } + + iort_base_ptr = d->arch.efi_acpi_table + + acpi_get_table_offset(tbl_add, TBL_IORT); + ACPI_MEMCPY(iort_base_ptr, table, table->length); + + tbl_add[TBL_IORT].start = d->arch.efi_acpi_gpa + + acpi_get_table_offset(tbl_add, TBL_IORT); + tbl_add[TBL_IORT].size = table->length; + + return 0; +} + static int prepare_acpi(struct domain *d, struct kernel_info *kinfo) { int rc = 0; @@ -1889,6 +2025,10 @@ static int prepare_acpi(struct domain *d, struct kernel_info *kinfo) if ( rc != 0 ) return rc; + rc = acpi_create_iort(d, tbl_add); + if ( rc != 0 ) + return rc; + rc = acpi_create_xsdt(d, tbl_add); if ( rc != 0 ) return rc; diff --git a/xen/include/acpi/actbl2.h b/xen/include/acpi/actbl2.h index 42beac4..f180ea5 100644 --- a/xen/include/acpi/actbl2.h +++ b/xen/include/acpi/actbl2.h @@ -591,7 +591,8 @@ enum acpi_iort_node_type { ACPI_IORT_NODE_NAMED_COMPONENT = 0x01, ACPI_IORT_NODE_PCI_ROOT_COMPLEX = 0x02, ACPI_IORT_NODE_SMMU = 0x03, - ACPI_IORT_NODE_SMMU_V3 = 0x04 + ACPI_IORT_NODE_SMMU_V3 = 0x04, + ACPI_IORT_NODE_RESERVED = 0xff }; struct acpi_iort_id_mapping { diff --git a/xen/include/asm-arm/acpi.h b/xen/include/asm-arm/acpi.h index 9f954d3..1cc0167 100644 --- a/xen/include/asm-arm/acpi.h +++ b/xen/include/asm-arm/acpi.h @@ -36,6 +36,7 @@ typedef enum { TBL_FADT, TBL_MADT, TBL_STAO, + TBL_IORT, TBL_XSDT, TBL_RSDP, TBL_EFIT,