From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 5C898C6FD1C for ; Tue, 14 Mar 2023 14:37:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:From:References:Cc:To: Subject:Date:Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=9+n+QIqQ3wZOAMoF25txHKHRj7VaMONGcRvRfjep2DY=; b=IMu0nHk+72PTU8NSUkPizDdzO7 2xHtY3a9x2NL2bY2YLHjjobG+rYIJLqXzLagqqfKSfRp01HcFOUfqnvwtOITppg333ibwuvrQhjTC bCpjALIH0DlP7dH4J9ix1sxOd0IOJVDi4zzs0G9wHgd4Kcg/2vxp9vL+QfHNCHKzhiT1aGQYSk3Ww mYtSP0RAzcTmwUrqFvadCLouEmFsgCpCykzKDMebnXY481y6Ejkimn9cbX0Jp/G3ZzFVdzZiqsVAr 5iNtULlrqoTIEg4GBs3OXiynAVYN0WqjgA76D1G6Ji9OKy/gwcSGNGn+MDE5z7fNlu6He9j8zTT9L zvA9oZbw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pc5lM-00ATpc-1g; Tue, 14 Mar 2023 14:36:28 +0000 Received: from mail-mw2nam12on20724.outbound.protection.outlook.com ([2a01:111:f400:fe5a::724] helo=NAM12-MW2-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pc5lK-00AToH-09 for linux-arm-kernel@lists.infradead.org; Tue, 14 Mar 2023 14:36:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XBR/ZUHWrO9PAw65qns1OLe27SbjHJH8rWyq85iHNVei7iQpx9/JWWhBhei9Jn6+1oR//63ue8bSJDszkZrcwJ5L+GIGDNszmRuNW8uUkifd8Gcba+EkXQq4ILdhF7mPfj0aFA/AgLww6KdZFLoPkYc2EVzcVKdOe0Kcsv1JrkCyWC9Oybq7bjyDsgZK9HO6Ecol5gXV8wG0FaE/sHixIuaGE84sTNzI2V5lBMUW+5AG+3/QosJCE2avYF3mYOnE+bAVfN7OwzIbF7FPLvp7UmvMPakJY13U4iB9VOmAAUEh9TalVKFtgqjygNxezesvAEhYsOfPzRzAHppFpGw2Iw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Az4e8hmaG0ImgUW2uD3Q9tkejKdKmntXojx9906JjZk=; b=CJBHtzsw3q4O8DlqtNDBG0Xj8Zjn8jUNb9rGhYGxLOt0DGZRc6Tkqh8+NcvcCrCrdTu9OGRRU+iTOkRCdEtlvzhUj19yN2YC6QWRTWGwJFAWJbqiuZcz2CO1+ayWZZA2OleUT2LDYYlpUlQQxqK8GSiudf83byZfVD9Ilnsh2+P6QWW/RReezQs4elgc2IkAIimaEbTbbyKLDoHs4QC+wXWKyd0yxNstyA38zkVBtkQLXy5+RsJ5rOcuit9PrbJ16AR8tMCz1nh8wllxH12rLFE4MVSl8gUoBAJVPZr3R6SBej27bm9F1B7vOAvgbnGKOBq75Oiqra4mF0r6yWFkDg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=os.amperecomputing.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Az4e8hmaG0ImgUW2uD3Q9tkejKdKmntXojx9906JjZk=; b=t9M56pM6tvMTgRQ56XHd1Mwt4QDjPlpd7sNWy/05dM7xzucGq0Xz9evDAOKeniwB052uGeUygtXO0YgDMf7rao4BQmWwtNkiotq3bugJg6AFbNVj60TJjpTP2cQFCcrq7aKjwXYC60LQhDfX1eqBqwfPYaGUTZytLFnajSsbQic= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=os.amperecomputing.com; Received: from DM8PR01MB6824.prod.exchangelabs.com (2603:10b6:8:23::24) by BYAPR01MB5671.prod.exchangelabs.com (2603:10b6:a03:118::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.24; Tue, 14 Mar 2023 14:36:16 +0000 Received: from DM8PR01MB6824.prod.exchangelabs.com ([fe80::fc8b:5e5e:a850:7f0a]) by DM8PR01MB6824.prod.exchangelabs.com ([fe80::fc8b:5e5e:a850:7f0a%7]) with mapi id 15.20.6178.024; Tue, 14 Mar 2023 14:36:16 +0000 Message-ID: <799c6c17-c448-387c-fea1-b5f1c5045819@os.amperecomputing.com> Date: Tue, 14 Mar 2023 20:06:07 +0530 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: [PATCH v2 1/2] PCI/ATS: Add a helper function to configure ATS STU of a PF Content-Language: en-US To: Sathyanarayanan Kuppuswamy , Bjorn Helgaas Cc: linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, iommu@lists.linux.dev, joro@8bytes.org, bhelgaas@google.com, robin.murphy@arm.com, will@kernel.org, jean-philippe@linaro.org, darren@os.amperecomputing.com, scott@os.amperecomputing.com References: <20230313211201.GA1540091@bhelgaas> <6339c50a-8dfe-f3a2-63d7-504abd4e62f0@linux.intel.com> <646638fa-42e8-624a-068b-9c8a26ebfd98@linux.intel.com> From: Ganapatrao Kulkarni In-Reply-To: <646638fa-42e8-624a-068b-9c8a26ebfd98@linux.intel.com> X-ClientProxiedBy: CH2PR08CA0003.namprd08.prod.outlook.com (2603:10b6:610:5a::13) To DM8PR01MB6824.prod.exchangelabs.com (2603:10b6:8:23::24) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM8PR01MB6824:EE_|BYAPR01MB5671:EE_ X-MS-Office365-Filtering-Correlation-Id: 711e124a-8a9a-400c-3c2e-08db249977da X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kA4G4kfjGYt326PfS6TXlBOwjw3SPduyCGpQC8OsDOc5lKHX8dqsx8qAeq4l+tJpS1jmzB5SkQ7y0hKmE93rTOoLZY7yjbWwXHCFDJ1kls+AVpvu8FP6KVlX0xMD+K4CWFxJ2RhDrp9lNjcpoHaH8VKUdFz5XVmWB19jhybAB+FMyeenOWBvXPB9G+vSYTai0jrmhHGUnQ7WmEe5pUXffgG9YcXoeGqKikoNWzb2CD7ErIp5XVa3ytHANq4G7QVzn2kh57uDBwYcaHpYbNU0QVVhhQZNfBNE9lynXswF5XdylutwesYV6nwR0tBFW3SKW0yD20evvyXLe3826xRX6gz/69VwIaLmxZshcGgOH86kfyiqkxKtugGbkyJt6torn43lq0OhjM//7RXP05bXJWlU86QJTHxG5MFzXVN4Ozdy18AQRKLJEk0C4K2PjKL5E9hW6w2ITF7MV/LdFX8oCw/7lPoHcjodvvZ+M5U17UFRQgTS7GMPrp3Gv+oKHDwgS3odJeYO9n3KFG0VFN/3B9cweI73Kx+C/V6Vbi0/miWx5ryH319zXaNT312Ua8htmgipuEZHTH9BY3xPAcWNLZkwI5T9W86TpwMMMLUgqaBADG1oFRUNKftPlbbo3AYCohoy204oBXcIOe4CfLqbXBzbxOsZYeeW8NrJTu2kqiDpcVMBkmhEfRTduyHdEkaO X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM8PR01MB6824.prod.exchangelabs.com;PTR:;CAT:NONE;SFS:(13230025)(4636009)(346002)(396003)(39850400004)(136003)(366004)(376002)(451199018)(7416002)(5660300002)(83380400001)(186003)(478600001)(26005)(107886003)(2616005)(966005)(6506007)(6512007)(6666004)(53546011)(6486002)(66556008)(8676002)(38100700002)(4326008)(316002)(66476007)(8936002)(66946007)(41300700001)(31696002)(86362001)(110136005)(2906002)(31686004)(43740500002);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WCtEMDFSS09BcHo1NElXendXVmk3M2dWUlI5VUU5NE1qV0ZqRlJvOFJGQzZC?= =?utf-8?B?aGs2U2RidlMwK1UxeDROQ1c1N3ZRTDh4em56MHpPMGhlKzYzVHlqUVA4OWwr?= =?utf-8?B?bEVNdnhTN3A1YkViOS9HME0yMHRmTjdjRVR6S24veGIrL3ZsMHFBbHdCYktH?= =?utf-8?B?bkVuU0lRVEkyODNUSWpIUnNia2ZyMll1cFordXhNbHZxVDZKSnJPMUlaMHpF?= =?utf-8?B?NURYNHJVaXhEbFAyZXR3dnJMb1VTbFpnc2JISEh5S2VmY3VUKzhBcmxEWUc3?= =?utf-8?B?b0F6SWc2ejVzV3I3eUkyQzBDN0ZkNThBUk4wNG9QeTg0NTgwMVhrMzByaUdn?= =?utf-8?B?VEU5MlNCUTZ4eG5SZ2poMXB5Uys5UjdVZlZadzQ1MkZLQXZOTkxBcytYVkNz?= =?utf-8?B?b2psZ1l6czJMdEZnR1dSdnIyNmJjdTQxaFEzRng1bm11ZlJJUCsvNzFSdWZM?= =?utf-8?B?ZzlnZmtnc2Q3d1V3aDBQU0hMSUhVZDBwNmVzMTF0WjUwY1BiTDBDRlJWYk9q?= =?utf-8?B?WXc5eGFZQ2xPWUxFbEYxZ3JuSDB2ZjExaFJXR0lRZEJncnFxVnFVVlVDVSs5?= =?utf-8?B?UmdXQWVRQXluWUFwRHhMbE43dFVxcFFQZldyTEhYWmI5c1VOKytnWlBCdllo?= =?utf-8?B?b0VwTW1NZ2RYbDZjN21BR0VSNFZ1WVp6NDU1QWdWWDJ0ZzNTRVJOT1Z6QzMy?= =?utf-8?B?eUw0MjlZampsS2lCVkhOeTIzMXVIY2IvdmdWNERrUTEzaUN5M2NYNmh0Mks3?= =?utf-8?B?cGwrYlFGdUhkcStLUGcwdXczNGFpZGZ3UVNrU3l1M0p3YjVTakxTOXpYSUpU?= =?utf-8?B?Tm1maCtPdGRESDROdzhxanVYM1BrVWlyRERpNGFWZVY4L05laE1Sa0F1UDI0?= =?utf-8?B?YTh6WFpPSktlNVFIb0pIZXhxL09HK1lhbVRzN2w4eFNjdEtYRnpnOXlKaWli?= =?utf-8?B?Q2Q1ZWpJaXdDdDlBZ3VDaktIczNNNkFBYXZzNzJoSnVoQlhQK1k1c05KaFFI?= =?utf-8?B?bkhRdU1XUlVPU0plV0svZHBobTlGNnQxWUp3aWZyV0NqNUlGQlZYdDVtbzI3?= =?utf-8?B?SGYwTFNLaXlGcEFSWTBnWjdFT2Fnc1p1SlBpQ1FFQ01COUZOQTRNeG1MOHMy?= =?utf-8?B?Mm5WeDhxSVlTZmlQWHBaRUVDc1c2anNIQi9sQjZOaHVVT3BaWUFONEZBSzBt?= =?utf-8?B?ZDBMbGZOZGpBMGcxcUFmZGI1cDU1eS9CZS9ZbFcvb0RtbnJQYXkzcmJyUDIr?= =?utf-8?B?WVFJd1EwOTI3TU1vekRDdlZDeWdmWEU5WXlmR0RxekZPbTJ5MTZkTERzaHZs?= =?utf-8?B?ZU9pRGVEMUdJQ21ZY2VxODdCSm5Zb1NVNVJKL2t0Z21FdHdkczhrL1ZRRTRp?= =?utf-8?B?dTAzT3RyOVVUeVY4TEwySWtNRDRKbnU3cW5maFZqcmdQdngrVklNVG9tYXda?= =?utf-8?B?aTJiZW9SaGFoalJjYkJ0TU5KaERxbGRvb3FsK3pYb2QzS0JUUUlBNEpWUkhw?= =?utf-8?B?QkdRZGNJdnpLb0JwaUc4elhSeldwenpCeHFGSGllYWd2NXFPL2p1cHV4WTA0?= =?utf-8?B?MHhKN3dILzN2ZGRQRHpXdG8yeFVHODVBOS9kUnpGcmxDOVBucDA2RUtVYVBa?= =?utf-8?B?T1NWeDRoTStxU3Vqc05SM1NoYXhtYUp4SGRLalk1cUdMdHNRT0NJY0dTSllI?= =?utf-8?B?OTNZSENnRnZ1N2RoTktnOHNYcmZwSW9iQmErcGxqcXV6dUNLWVBIOFJ2NENa?= =?utf-8?B?UnQrL1N4Mm1yNEtsZEpIelJqc0RlaDFiYXJydW5kbWxVTHVpRnpmWHNjdmJh?= =?utf-8?B?eHNNSnYzajVlVGlodHNVcUE2WjhSSXhSL2tpSGxsUjFjMXlIT1JTZk1xcEVH?= =?utf-8?B?TGMxWXdJZmQxZUUzSnQxVm0xUGdUUEZlTGRPdTBSQllnZGd5SzEvL0dLMCsr?= =?utf-8?B?UUVqTmoza1U5TUV4MDRodjd6OHZKUTlld2lac2FtbUM0UDhPMmgwM1RWZVJk?= =?utf-8?B?WEZhTTlqWjN5b3JXOEhwb0dJYk9GL24zMDc5UjhEYXM3RFZ2dnRUYlNsYjdN?= =?utf-8?B?aDJtNmV5VzFRVy9mQVJ1OGwxcG1wUXMzakpLdTNYT3N4elNRS2FYVWc2SzVD?= =?utf-8?B?ejQ3dFVUQkhtUElUaGx4VXFtRldDTllOK3Y0RlZoRFpTZVczVEJoRitBN09U?= =?utf-8?Q?pBZ/nWswbEAjOkDYxs6IzcNMRrKre4iw3TqNZJGgonXP?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: 711e124a-8a9a-400c-3c2e-08db249977da X-MS-Exchange-CrossTenant-AuthSource: DM8PR01MB6824.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Mar 2023 14:36:16.4318 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: gXZZN4lOUfsm2dyxUURz7Gns9N4PtB3eIr5EU4SkiX7Y/1M5+WYfAKLKlwVFhshDQGC/7z6yH+TDN0lxQJoQmLMYR+gI+yUJGIMTFS1uhti1f1x0AQmwwJPpZ5dpYRgy X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR01MB5671 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230314_073626_142537_52B3DD71 X-CRM114-Status: GOOD ( 29.62 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org CkhpIFNhdGh5YW5hcmF5YW5hbiwKCk9uIDE0LTAzLTIwMjMgMDY6MjIgcG0sIFNhdGh5YW5hcmF5 YW5hbiBLdXBwdXN3YW15IHdyb3RlOgo+IAo+IAo+IE9uIDMvMTQvMjMgMzowOCBBTSwgR2FuYXBh dHJhbyBLdWxrYXJuaSB3cm90ZToKPj4KPj4KPj4gT24gMTQtMDMtMjAyMyAwNDowMCBhbSwgU2F0 aHlhbmFyYXlhbmFuIEt1cHB1c3dhbXkgd3JvdGU6Cj4+PiBIaSBLdWxrYXJuaSwKPj4+Cj4+PiBP biAzLzEzLzIzIDI6MTIgUE0sIEJqb3JuIEhlbGdhYXMgd3JvdGU6Cj4+Pj4gT24gTW9uLCBGZWIg MjcsIDIwMjMgYXQgMDg6MjE6MzZQTSAtMDgwMCwgR2FuYXBhdHJhbyBLdWxrYXJuaSB3cm90ZToK Pj4+Pj4gQXMgcGVyIFBDSSBzcGVjaWZpY2F0aW9uIChQQ0kgRXhwcmVzcyBCYXNlIFNwZWNpZmlj YXRpb24gUmV2aXNpb24KPj4+Pj4gNi4wLCBTZWN0aW9uIDEwLjUpIGJvdGggUEYgYW5kIFZGcyBv ZiBhIFBDSSBFUCBhcmUgcGVybWl0dGVkIHRvIGJlIGVuYWJsZWQKPj4+Pj4gaW5kZXBlbmRlbnRs eSBmb3IgQVRTIGNhcGFiaWxpdHksIGhvd2V2ZXIgdGhlIFNUVShTbWFsbGVzdCBUcmFuc2xhdGlv bgo+Pj4+PiBVbml0KSBpcyBzaGFyZWQgYmV0d2VlbiBQRiBhbmQgVkZzLiBGb3IgVkZzLCBpdCBp cyBoYXJkd2lyZWQgdG8gWmVybyBhbmQKPj4+Pj4gdGhlIGFzc29jaWF0ZWQgUEYncyB2YWx1ZSBh cHBsaWVzIHRvIFZGcy4KPj4+Pj4KPj4+Pj4gSW4gdGhlIGN1cnJlbnQgY29kZSwgdGhlIFNUVSBp cyBiZWluZyBjb25maWd1cmVkIHdoaWxlIGVuYWJsaW5nIHRoZSBQRiBBVFMuCj4+Pj4+IEhlbmNl LCBpdCBpcyBub3QgYWJsZSB0byBlbmFibGUgQVRTIGZvciBWRnMsIGlmIGl0IGlzIG5vdCBlbmFi bGVkIG9uIHRoZQo+Pj4+PiBhc3NvY2lhdGVkIFBGIGFscmVhZHkuCj4+Pj4+Cj4+Pj4+IEFkZGlu ZyBhIGZ1bmN0aW9uIHBjaV9hdHNfc3R1X2NvbmZpZ3VyZSgpLCB3aGljaCBjYW4gYmUgY2FsbGVk IHRvCj4+Pj4+IGNvbmZpZ3VyZSB0aGUgU1RVIGR1cmluZyBQRiBlbnVtZXJhdGlvbi4KPj4+Pj4g TGF0dGVyIGVudW1lcmF0aW9ucyBvZiBWRnMgY2FuIHN1Y2Nlc3NmdWxseSBlbmFibGUgQVRTIGlu ZGVwZW5kZW50bHkuCj4+Pj4KPj4+PiBzL1NUVShTbWFsbGVzdC9TVFUgKFNtYWxsZXN0LyAoYWRk IHNwYWNlIGJlZm9yZSBwYXJlbikKPj4+PiBzL0FkZGluZyBhIGZ1bmN0aW9uIHBjaV9hdHNfc3R1 X2NvbmZpZ3VyZSgpL0FkZCBwY2lfYXRzX3N0dV9jb25maWd1cmUoKS8KPj4+PiBzL0xhdHRlci9T dWJzZXF1ZW50Lwo+Pj4+Cj4+Pj4gQWRkIGJsYW5rIGxpbmUgYmV0d2VlbiBwYXJhZ3JhcGhzIChp dCBsb29rcyBsaWtlICJMYXR0ZXIgZW51bWVyYXRpb25zIgo+Pj4+IGlzIGludGVuZGVkIHRvIHN0 YXJ0IGEgbmV3IHBhcmFncmFwaCkuCj4+Pj4KPj4+Pj4gU2lnbmVkLW9mZi1ieTogR2FuYXBhdHJh byBLdWxrYXJuaSA8Z2Fua3Vsa2FybmlAb3MuYW1wZXJlY29tcHV0aW5nLmNvbT4KPj4+Pgo+Pj4+ IEFja2VkLWJ5OiBCam9ybiBIZWxnYWFzIDxiaGVsZ2Fhc0Bnb29nbGUuY29tPgo+Pj4+Cj4+Pj4g R2l2ZW4gYW4gYWNrIGZvciB0aGUgSU9NTVUgcGF0Y2gsIEknZCBiZSBoYXBweSB0byBtZXJnZSBi b3RoIChhbmQgSQo+Pj4+IGNhbiBkbyB0aGUgY29tbWl0IGxvZyB0d2Vha3MpOyBqdXN0IGxldCBt ZSBrbm93Lgo+Pj4+Cj4+Pj4gT25lIGNvbW1lbnQvcXVlc3Rpb24gYmVsb3cuCj4+Pj4KPj4+Pj4g LS0tCj4+Pj4+ICDCoCBkcml2ZXJzL3BjaS9hdHMuY8KgwqDCoMKgwqDCoCB8IDMzICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLQo+Pj4+PiAgwqAgaW5jbHVkZS9saW51eC9wY2ktYXRz LmggfMKgIDMgKysrCj4+Pj4+ICDCoCAyIGZpbGVzIGNoYW5nZWQsIDM0IGluc2VydGlvbnMoKyks IDIgZGVsZXRpb25zKC0pCj4+Pj4+Cj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9hdHMu YyBiL2RyaXZlcnMvcGNpL2F0cy5jCj4+Pj4+IGluZGV4IGY5Y2MyZTEwYjY3Ni4uMTYxMWJmYTFk NWRhIDEwMDY0NAo+Pj4+PiAtLS0gYS9kcml2ZXJzL3BjaS9hdHMuYwo+Pj4+PiArKysgYi9kcml2 ZXJzL3BjaS9hdHMuYwo+Pj4+PiBAQCAtNDYsNiArNDYsMzUgQEAgYm9vbCBwY2lfYXRzX3N1cHBv cnRlZChzdHJ1Y3QgcGNpX2RldiAqZGV2KQo+Pj4+PiAgwqAgfQo+Pj4+PiAgwqAgRVhQT1JUX1NZ TUJPTF9HUEwocGNpX2F0c19zdXBwb3J0ZWQpOwo+Pj4+PiAgwqAgKy8qKgo+Pj4+PiArICogcGNp X2F0c19zdHVfY29uZmlndXJlIC0gQ29uZmlndXJlIFNUVSBvZiBhIFBGLgo+Pj4+PiArICogQGRl djogdGhlIFBDSSBkZXZpY2UKPj4+Pj4gKyAqIEBwczogdGhlIElPTU1VIHBhZ2Ugc2hpZnQKPj4+ Pj4gKyAqCj4+Pj4+ICsgKiBSZXR1cm5zIDAgb24gc3VjY2Vzcywgb3IgbmVnYXRpdmUgb24gZmFp bHVyZS4KPj4+Pj4gKyAqLwo+Pj4+PiAraW50IHBjaV9hdHNfc3R1X2NvbmZpZ3VyZShzdHJ1Y3Qg cGNpX2RldiAqZGV2LCBpbnQgcHMpCj4+Pj4+ICt7Cj4+Pj4+ICvCoMKgwqAgdTE2IGN0cmw7Cj4+ Pj4+ICsKPj4+Pj4gK8KgwqDCoCBpZiAoZGV2LT5hdHNfZW5hYmxlZCB8fCBkZXYtPmlzX3ZpcnRm bikKPj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiAwOwo+Pj4+Cj4+Pj4gSSBtaWdodCByZXR1 cm4gYW4gZXJyb3IgZm9yIHRoZSBWRiBjYXNlIG9uIHRoZSBhc3N1bXB0aW9uIHRoYXQgaXQncwo+ Pj4+IGxpa2VseSBhbiBlcnJvciBpbiB0aGUgY2FsbGVyLsKgIEkgZ3Vlc3Mgb25lIGNvdWxkIGFy Z3VlIHRoYXQgaXQKPj4+PiBzaW1wbGlmaWVzIHRoZSBjYWxsZXIgaWYgaXQgZG9lc24ndCBoYXZl IHRvIGNoZWNrIGZvciBQRiB2cyBWRi7CoCBCdXQKPj4+PiB0aGUgZmFjdCB0aGF0IFNUVSBpcyBz aGFyZWQgYmV0d2VlbiBQRiBhbmQgVkZzIGlzIGFuIGltcG9ydGFudCBwYXJ0IG9mCj4+Pj4gdW5k ZXJzdGFuZGluZyBob3cgQVRTIHdvcmtzLCBzbyB0aGUgY2FsbGVyIHNob3VsZCBiZSBhd2FyZSBv ZiB0aGUKPj4+PiBkaXN0aW5jdGlvbiBhbnl3YXkuCj4+Pgo+Pj4gSSBoYXZlIGFscmVhZHkgYXNr ZWQgdGhpcyBxdWVzdGlvbi4gQnV0IGxldCBtZSByZXBlYXQgaXQuCj4+Pgo+Pj4gV2UgZG9uJ3Qg aGF2ZSBhbnkgY2hlY2tzIGZvciB0aGUgUEYgY2FzZSBoZXJlLiBUaGF0IG1lYW5zIHlvdSBjYW4g cmUtY29uZmlndXJlCj4+PiB0aGUgU1RVIGFzIG1hbnkgdGltZXMgYXMgeW91IHdhbnQgdW50aWwg QVRTIGlzIGVuYWJsZWQgaW4gUEYuIFNvLCBpZiB0aGVyZSBhcmUKPj4+IGFjdGl2ZSBWRnMgd2hp Y2ggdXNlcyB0aGlzIFNUVSwgY2FuIFBGIHJlLWNvbmZpZ3VyZSB0aGUgU1RVIGF0IHdpbGw/Cj4+ Pgo+Pgo+PiBJTU8sIFNpbmNlIFNUVSBpcyBzaGFyZWQsIHByb2dyYW1taW5nIGl0IG11bHRpcGxl IHRpbWVzIGlzIG5vdCBleHBlY3RlZCBmcm9tIGNhbGxlcnMgY29kZSBkbyBpdCwgaG93ZXZlciB3 ZSBjYW4gYWRkIGJlbG93IGNoZWNrIHRvIGFsbG93IHRvIHByb2dyYW0gU1RVIG9uY2UgZnJvbSBh IFBGLgo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvYXRzLmMgYi9kcml2ZXJzL3BjaS9h dHMuYwo+PiBpbmRleCAxNjExYmZhMWQ1ZGEuLmY3YmIwMTA2OGUxOCAxMDA2NDQKPj4gLS0tIGEv ZHJpdmVycy9wY2kvYXRzLmMKPj4gKysrIGIvZHJpdmVycy9wY2kvYXRzLmMKPj4gQEAgLTYwLDYg KzYwLDEwIEBAIGludCBwY2lfYXRzX3N0dV9jb25maWd1cmUoc3RydWN0IHBjaV9kZXYgKmRldiwg aW50IHBzKQo+PiAgwqDCoMKgwqDCoMKgwqAgaWYgKGRldi0+YXRzX2VuYWJsZWQgfHwgZGV2LT5p c192aXJ0Zm4pCj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIDA7Cj4+ Cj4+ICvCoMKgwqDCoMKgwqAgLyogQ29uZmlndXJlZCBhbHJlYWR5ICovCj4+ICvCoMKgwqDCoMKg wqAgaWYgKGRldi0+YXRzX3N0dSkKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0 dXJuIDA7Cj4+ICsKPiAKPiBUaGVvcmV0aWNhbGx5LCB5b3UgY2FuIHJlLWNvbmZpZ3VyZSBTVFUg YXMgbG9uZyBhcyBubyBvbmUgaXMgdXNpbmcgaXQuIEluc3RlYWQgb2YgdGhpcyBjaGVjaywgaXMK PiB0aGVyZSBhIHdheSB0byBjaGVjayB3aGV0aGVyIHRoZXJlIGFyZSBhY3RpdmUgVk1zIHdoaWNo IGVuYWJsZXMgQVRTPwoKWWVzIEkgYWdyZWUsIHRoZXJlIGlzIG5vIGxpbWl0YXRpb24gb24gaG93 IG1hbnkgdGltZXMgeW91IHdyaXRlIFNUVSAKYml0cywgYnV0IHByYWN0aWNhbGx5IGl0IGlzIGhh cHBlbmluZyB3aGlsZSBQRiBpcyBlbnVtZXJhdGVkLgoKVGhlIHVzYWdlIG9mIGZ1bmN0aW9uIHBj aV9hdHNfc3R1X2NvbmZpZ3VyZSBpcyBhbG1vc3Qgc2ltaWxhcihzdWJzZXQpIHRvCnBjaV9lbmFi bGVfYXRzIGFuZCBvbmx5IGRpZmZlcmVuY2UgaXMgb25lIGRvZXMgQVRTIGVuYWJsZSArIFNUVSBw cm9ncmFtIAphbmQgYW5vdGhlciBkb2VzIG9ubHkgU1RVIHByb2dyYW0uCgpJTU8sIEkgZG9udCB0 aGluaywgdGhlcmUgaXMgYW55IG5lZWQgdG8gZmluZCBob3cgbWFueSBhY3RpdmUgVk1zIHdpdGgg CmF0dGFjaGVkIFZGcyBhbmQgaXQgaXMgbm90IGRvbmUgZm9yIHBjaV9lbmFibGVfYXRzIGFzIHdl bGwuCgpBbHNvIHRoZSBjYWxsZXIgaGFzIHRoZSByZXF1aXJlbWVudCB0byBjYWxsIGVpdGhlciBw Y2lfYXRzX3N0dV9jb25maWd1cmUgCm9yIHBjaV9lbmFibGVfYXRzIHdoaWxlIGVudW1lcmF0aW5n IHRoZSBQRi4KCj4gCj4+ICDCoMKgwqDCoMKgwqDCoCBpZiAoIXBjaV9hdHNfc3VwcG9ydGVkKGRl dikpCj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FSU5WQUw7Cj4+ Pj4KPj4+Pj4gKwo+Pj4+PiArwqDCoMKgIGlmICghcGNpX2F0c19zdXBwb3J0ZWQoZGV2KSkKPj4+ Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiAtRUlOVkFMOwo+Pj4+PiArCj4+Pj4+ICvCoMKgwqAg aWYgKHBzIDwgUENJX0FUU19NSU5fU1RVKQo+Pj4+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1F SU5WQUw7Cj4+Pj4+ICsKPj4+Pj4gK8KgwqDCoCBkZXYtPmF0c19zdHUgPSBwczsKPj4+Pj4gK8Kg wqDCoCBwY2lfcmVhZF9jb25maWdfd29yZChkZXYsIGRldi0+YXRzX2NhcCArIFBDSV9BVFNfQ1RS TCwgJmN0cmwpOwo+Pj4+PiArwqDCoMKgIGN0cmwgfD0gUENJX0FUU19DVFJMX1NUVShkZXYtPmF0 c19zdHUgLSBQQ0lfQVRTX01JTl9TVFUpOwo+Pj4+PiArwqDCoMKgIHBjaV93cml0ZV9jb25maWdf d29yZChkZXYsIGRldi0+YXRzX2NhcCArIFBDSV9BVFNfQ1RSTCwgY3RybCk7Cj4+Pj4+ICsKPj4+ Pj4gK8KgwqDCoCByZXR1cm4gMDsKPj4+Pj4gK30KPj4+Pj4gK0VYUE9SVF9TWU1CT0xfR1BMKHBj aV9hdHNfc3R1X2NvbmZpZ3VyZSk7Cj4+Pj4+ICsKPj4+Pj4gIMKgIC8qKgo+Pj4+PiAgwqDCoCAq IHBjaV9lbmFibGVfYXRzIC0gZW5hYmxlIHRoZSBBVFMgY2FwYWJpbGl0eQo+Pj4+PiAgwqDCoCAq IEBkZXY6IHRoZSBQQ0kgZGV2aWNlCj4+Pj4+IEBAIC02OCw4ICs5Nyw4IEBAIGludCBwY2lfZW5h YmxlX2F0cyhzdHJ1Y3QgcGNpX2RldiAqZGV2LCBpbnQgcHMpCj4+Pj4+ICDCoMKgwqDCoMKgwqDC oMKgwqAgcmV0dXJuIC1FSU5WQUw7Cj4+Pj4+ICDCoCDCoMKgwqDCoMKgIC8qCj4+Pj4+IC3CoMKg wqDCoCAqIE5vdGUgdGhhdCBlbmFibGluZyBBVFMgb24gYSBWRiBmYWlscyB1bmxlc3MgaXQncyBh bHJlYWR5IGVuYWJsZWQKPj4+Pj4gLcKgwqDCoMKgICogd2l0aCB0aGUgc2FtZSBTVFUgb24gdGhl IFBGLgo+Pj4+PiArwqDCoMKgwqAgKiBOb3RlIHRoYXQgZW5hYmxpbmcgQVRTIG9uIGEgVkYgZmFp bHMgdW5sZXNzIGl0J3MgYWxyZWFkeQo+Pj4+PiArwqDCoMKgwqAgKiBjb25maWd1cmVkIHdpdGgg dGhlIHNhbWUgU1RVIG9uIHRoZSBQRi4KPj4+Pj4gIMKgwqDCoMKgwqDCoCAqLwo+Pj4+PiAgwqDC oMKgwqDCoCBjdHJsID0gUENJX0FUU19DVFJMX0VOQUJMRTsKPj4+Pj4gIMKgwqDCoMKgwqAgaWYg KGRldi0+aXNfdmlydGZuKSB7Cj4+Pj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3BjaS1h dHMuaCBiL2luY2x1ZGUvbGludXgvcGNpLWF0cy5oCj4+Pj4+IGluZGV4IGRmNTRjZDViMTVkYi4u N2Q2MmE5MmFhZjIzIDEwMDY0NAo+Pj4+PiAtLS0gYS9pbmNsdWRlL2xpbnV4L3BjaS1hdHMuaAo+ Pj4+PiArKysgYi9pbmNsdWRlL2xpbnV4L3BjaS1hdHMuaAo+Pj4+PiBAQCAtOCw2ICs4LDcgQEAK Pj4+Pj4gIMKgIC8qIEFkZHJlc3MgVHJhbnNsYXRpb24gU2VydmljZSAqLwo+Pj4+PiAgwqAgYm9v bCBwY2lfYXRzX3N1cHBvcnRlZChzdHJ1Y3QgcGNpX2RldiAqZGV2KTsKPj4+Pj4gIMKgIGludCBw Y2lfZW5hYmxlX2F0cyhzdHJ1Y3QgcGNpX2RldiAqZGV2LCBpbnQgcHMpOwo+Pj4+PiAraW50IHBj aV9hdHNfc3R1X2NvbmZpZ3VyZShzdHJ1Y3QgcGNpX2RldiAqZGV2LCBpbnQgcHMpOwo+Pj4+PiAg wqAgdm9pZCBwY2lfZGlzYWJsZV9hdHMoc3RydWN0IHBjaV9kZXYgKmRldik7Cj4+Pj4+ICDCoCBp bnQgcGNpX2F0c19xdWV1ZV9kZXB0aChzdHJ1Y3QgcGNpX2RldiAqZGV2KTsKPj4+Pj4gIMKgIGlu dCBwY2lfYXRzX3BhZ2VfYWxpZ25lZChzdHJ1Y3QgcGNpX2RldiAqZGV2KTsKPj4+Pj4gQEAgLTE2 LDYgKzE3LDggQEAgc3RhdGljIGlubGluZSBib29sIHBjaV9hdHNfc3VwcG9ydGVkKHN0cnVjdCBw Y2lfZGV2ICpkKQo+Pj4+PiAgwqAgeyByZXR1cm4gZmFsc2U7IH0KPj4+Pj4gIMKgIHN0YXRpYyBp bmxpbmUgaW50IHBjaV9lbmFibGVfYXRzKHN0cnVjdCBwY2lfZGV2ICpkLCBpbnQgcHMpCj4+Pj4+ ICDCoCB7IHJldHVybiAtRU5PREVWOyB9Cj4+Pj4+ICtzdGF0aWMgaW5saW5lIGludCBwY2lfYXRz X3N0dV9jb25maWd1cmUoc3RydWN0IHBjaV9kZXYgKmQsIGludCBwcykKPj4+Pj4gK3sgcmV0dXJu IC1FTk9ERVY7IH0KPj4+Pj4gIMKgIHN0YXRpYyBpbmxpbmUgdm9pZCBwY2lfZGlzYWJsZV9hdHMo c3RydWN0IHBjaV9kZXYgKmQpIHsgfQo+Pj4+PiAgwqAgc3RhdGljIGlubGluZSBpbnQgcGNpX2F0 c19xdWV1ZV9kZXB0aChzdHJ1Y3QgcGNpX2RldiAqZCkKPj4+Pj4gIMKgIHsgcmV0dXJuIC1FTk9E RVY7IH0KPj4+Pj4gLS0gCj4+Pj4+IDIuMzguMQo+Pj4+Pgo+Pj4+Pgo+Pj4+PiBfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+Pj4+PiBsaW51eC1hcm0ta2Vy bmVsIG1haWxpbmcgbGlzdAo+Pj4+PiBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5v cmcKPj4+Pj4gaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51 eC1hcm0ta2VybmVsCj4+Pgo+Pgo+PiBUaGFua3MsCj4+IEdhbmFwYXQKPj4KPiAKVGhhbmtzLApH YW5hcGF0CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K bGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZy YWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGlu dXgtYXJtLWtlcm5lbAo=