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 X-Spam-Level: X-Spam-Status: No, score=-13.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7365DC433DB for ; Fri, 19 Mar 2021 04:29:41 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 3133564F30 for ; Fri, 19 Mar 2021 04:29:41 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3133564F30 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 448096E97E; Fri, 19 Mar 2021 04:29:40 +0000 (UTC) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2077.outbound.protection.outlook.com [40.107.220.77]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7EE716E97E for ; Fri, 19 Mar 2021 04:29:39 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JzN+PXmotowhPuwUE0AAdk9T9NoQB99OAOsrUUp0WXtkYUEKVEEjOzekncjHuxYF2TSahyiYA6vlFPWE2BlUX39CepeCE7IUlRxBENcmcxN0PCwBwgLjQbGAHoosc/JpUsT1cdXN/2Lfi9dNTp9yNClrauiZctWBKxCQlYkGdBnpRpF4+81YWBPf4wh057NQZU5BPhGyzIkzMDExAQDOKefh+i8Tb9/Uo7PpR3+8rWPIR4mi+X2Yg9SY9/IvlKWZbOdLSLCNvEHhfxFFMTdQrYAvTzf8xeObad2rHRUd3/FSo+Mt/lbdMP/zNR3abCekpJAD6CZ98sk6xvlTuc0Y5A== 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-SenderADCheck; bh=g+A03arYvacK6zW76rKNbjnHCjEbqygfAb/Cql8Av2I=; b=n0MNwOEIrdBYgEcBm/oeoCLNJSkql+dh5+Y9Pvd31JCZDlYDsVu3ci9xFHcQ2ljhI6098s/fmC9uNmFLTfeZNFC1O+ZSgQTfyFgGqBKR8kiD8Be4ICqWKnYKCLQ5dO+SieFZvzBdaDADW11R4Bv9rwEL6GckRNF5SoG8T6A7MSzHA/pm/ZhLMnS4ZyntEpCrEeKT3PacI5l78x0le5WrKtK2fELxWVw6mEHY0vYCxwVnmjLwV0DB3etQAgKDD9n3h3tmLbQTLaeCU1za2wfuIpgKRT30Y6SB2uUrEPWUsh9zkB+elWocjjiCq3K48UFiCZi7ecP8tH71WuzxNoyMSQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=g+A03arYvacK6zW76rKNbjnHCjEbqygfAb/Cql8Av2I=; b=V0ynOr2wDmfEOP6BaHKLeUHkevpw1pPQmKFpTBYcM5eZqz4wvbjcvMyAFRJPMMY0jPb8VPtTt0YuAFj3hLc+SwR+ALnxpsziQx3qBtiZe3qVdN1TN9dD/6ej7CQR4Lk1OkmvcqVWnG86jJU8Dwl03t9rzeaPzyVM1EAbPa32o2M= Authentication-Results: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=none action=none header.from=amd.com; Received: from MWHPR12MB1248.namprd12.prod.outlook.com (2603:10b6:300:12::21) by MW2PR12MB2521.namprd12.prod.outlook.com (2603:10b6:907:8::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18; Fri, 19 Mar 2021 04:29:34 +0000 Received: from MWHPR12MB1248.namprd12.prod.outlook.com ([fe80::5094:3a69:806f:8a28]) by MWHPR12MB1248.namprd12.prod.outlook.com ([fe80::5094:3a69:806f:8a28%5]) with mapi id 15.20.3955.018; Fri, 19 Mar 2021 04:29:34 +0000 Date: Fri, 19 Mar 2021 12:28:31 +0800 From: Huang Rui To: Christian =?utf-8?B?S++/vW5pZw==?= Subject: Re: [PATCH 1/3] drm/ttm: move swapout logic around v2 Message-ID: <20210319042831.GA3262181@hr-amd> References: <20210318124719.13656-1-christian.koenig@amd.com> Content-Disposition: inline In-Reply-To: <20210318124719.13656-1-christian.koenig@amd.com> X-Originating-IP: [58.247.170.245] X-ClientProxiedBy: HK2P15301CA0013.APCP153.PROD.OUTLOOK.COM (2603:1096:202:1::23) To MWHPR12MB1248.namprd12.prod.outlook.com (2603:10b6:300:12::21) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from hr-amd (58.247.170.245) by HK2P15301CA0013.APCP153.PROD.OUTLOOK.COM (2603:1096:202:1::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.2 via Frontend Transport; Fri, 19 Mar 2021 04:29:32 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 60ba1947-cc7a-478b-7e8a-08d8ea8f98d1 X-MS-TrafficTypeDiagnostic: MW2PR12MB2521: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4502; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: B+4TSQbgcmWT9uKfKRy9aHQBO68R/f3HENISpKTZq7lGcqF948yqH4ou4pvkxxb15fsuNGuFQtGaZuE6Sng9BF7eEkAe8zNlffERXOg9a0WOZOEC1GAk5y6LMT/3moBtVRID5r6YKQ4nJlxkd75v1t39GphlePn+gZRMliElpsSb6xiw1Krbrv+XT3JxCIak97TlzsroxHR1TB+kOoon+RdlvM72nKj5p+Lq4e2FFuUrJ2ZU/1TNF6u3gyZshg38PnQ8LwxeXA1etC3BfeiOJxdYLU9DOkfn8pASmIH+RdAhF4MxFDp4PPPeY/jDjKQPTs/Tb4EcvKjcscqWv9tX8o0rafcW7LOTwMwWlP77sEQPLA0lnvxiedeEluACyHtq+nKkNF9VPsjX+SbOOp2LYnVOn3evgh69MY8UctaVMr9npZDE2M8U+YjhQWglEJscB95HDR7cbWliusc3lGLzGMQBP3u23XWQphLh1ORT1MnCKwT+nBIn2s8etHTflGsiMNlw1V+grOKesKda9mS0cp8MBwlcIDkDoR63xPxY9bU1oE3ESWNRTHexOTL33ZRMGXlUJdfAvXb5EaaSOF2Q0sG6YaJunOX/lXiF6khqfeVdH9qo8rode11CfzvPpsu5h/1hyBAD5kbs3w4+h22A8jN/FSMLBhnR1FNq0Ftz33YaaQIdetQ+B5T7SdOM1mmM X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MWHPR12MB1248.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(376002)(136003)(39860400002)(396003)(366004)(5660300002)(8936002)(86362001)(52116002)(26005)(186003)(6916009)(956004)(8676002)(66476007)(38100700001)(2906002)(55016002)(33716001)(966005)(478600001)(66556008)(45080400002)(54906003)(66946007)(1076003)(83380400001)(9686003)(16526019)(6496006)(33656002)(4326008)(316002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?dEsrSzVNZUw2NzMrb2dDdEhGNXQ5bktxYlN4UXA4SDNqUkpwUlhtVGYycHNs?= =?utf-8?B?ZWRBbWJpQ2R2R2Zhbk83VmlKVHlnSTZJT3Nscmd4YjFOTk1RaWl1UHBSbU53?= =?utf-8?B?Sm1RYkV3bkYyUFBPZ3pMcFFkUjh3QnZTMXMwcXk5RlhZQ2FJZjRrbEJmQTVG?= =?utf-8?B?SHNjaEZ4ZzBrN0VSdFpSaU9RTnlDOUc0aFEyS0phNXd2bk8rTzRNbENyVmtQ?= =?utf-8?B?RzVaQnM0WHI2UXJIbklQdThsa3hsT05sNERqSTB1QkhHOTBKWjNOMTVCQ0g2?= =?utf-8?B?alV1TWcxOXRxR3hVVEdKdG9zRnRoU1ZPekRyMjVaODg4NDJxT29iaXd0VWtw?= =?utf-8?B?TW9mU1IvaEFudTNmMHIzS1FUZ1dENWlPUHp3VlF0QzN4Z29TSlpUSmNCTldS?= =?utf-8?B?K1pvTFV4VWJQWVBtYlpydkRPUVVMZFhLa0Mydit3VXlPZDRUTFZ1Qi9DZzJ1?= =?utf-8?B?SEZoMU1MZDVMRGxxc3pjT2RXY09kZDIzNytRLzNHMU5KdTRqVzQrZXNMbHg2?= =?utf-8?B?Zkp5a3dlTWRvdUcwYTJCMlViRm1zVU93cG1qbHBQZUEwS0M2SEtYOFdvL0dL?= =?utf-8?B?VnIzcHNobzI4dDN1V2JGVDh5T3QvTVJKVXQyV1M5ZE5OVFcvRFJxaDluSlEr?= =?utf-8?B?TkNBSmhQdVdXVTcxWDU0OUl6azAwSWFzajA1LzJveWx5M2tteGdWdE5qSzU3?= =?utf-8?B?czMzd3F2VzhkMmRSMm1EdnNOaFhyQ2tlTlZjN05TelZkdmdYMm1FU2REZmx6?= =?utf-8?B?TkdRdW9NTWRrRThhTExnbUdTSGU5R3Z5SGtKeHd5Q1ljcXFyNFlQZGg3L3BZ?= =?utf-8?B?S2thNGdiZThiS25YLzRNUzZpWllmbkNROFY3L1BJWWIrNVF6K0ZTWWp2SFBC?= =?utf-8?B?bEx2SjNBamh1U0NzbDZ6MkEvNkR4TDdWcVdFdlZBSk1teGxnUWw3Nmx1RHl6?= =?utf-8?B?RmFJNFl4M2U3cUhtNXdSM2MvQ1ZxTkhpeGJ1YVgwMEFBVlJMZW40SXQ5QWVK?= =?utf-8?B?UkVSK05jYnc3dUU1ZFlGSURjbHpkbzk3V0JNRGhjUXJiclhUMGZxdjM3U1Uw?= =?utf-8?B?VmJSZlFWUUF4Mi9uekJaZjNxL3NNWGE4bjdjalRlYlJpNCtvOEZqUkFUNVdX?= =?utf-8?B?dkNoMGR1RUJESVlURW52TUpsc3o0L1lOYkxqd1dzdTRJMEJDSWszOVAwRGNl?= =?utf-8?B?TjQyWXhkU0dNNCtDaDhQcTBZRDliZWgrWkxTQkNmeW9XNHBhcWdPd0tlS29Z?= =?utf-8?B?YTBBc1UrU1ZWRkt2d0ZicUFNdmRGRWprN3g2MGdiRWNoSkdzRlkydWpPMDA4?= =?utf-8?B?bHFXOFI4U1Jnb204WUY3aUVQVG9IaFM2YjVSMzdUazgxWnBKVzNpcnNxL055?= =?utf-8?B?ZDhLcmJFWmRjZDVRSmYrWEFWQTNlQnhvNlRHZG01RXJZU1FwR01haWNkUHhC?= =?utf-8?B?QmlwaERpN2RqNE9Pbjc4QVJjbFZwbjNXRnNGeWVtUkp3Q3Rqd2tQcmc3UUJ3?= =?utf-8?B?L0l6TkFuOHlCTFUyWklxTFQwSkRHU3dvUDFDUUE3RlFQMlBMcVlJVGo4NE83?= =?utf-8?B?TXlGWmw0WnRkME5hTjBxWFFNK2JXRHJlaEFoQVF4R3VRVHV0elBlTDg2VXJJ?= =?utf-8?B?MG5VYzF4b2ppVTJBa2J4MkxpenRJb3JJN1M0dm5XUCtraWZLaStaZGNwRFVV?= =?utf-8?B?TmFPYTRLTGM3UDk3N3ZFdE5BWVZiY2dlTE44T21CS1k1Z2RqWFhvUUkyVnVE?= =?utf-8?Q?bDHvX1tQ2xhZ/4zLhS/km+Qs/pClsd36z7Y0/nr?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 60ba1947-cc7a-478b-7e8a-08d8ea8f98d1 X-MS-Exchange-CrossTenant-AuthSource: MWHPR12MB1248.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2021 04:29:34.2722 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: GYbGLjI7Uwh9oljGcJyXAfnCRMrtOwMRMWG0MBvnfV96VVzi72Hz9rDIMvX59TKMwOJ4OPJlqWyl/IXtevmeAQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW2PR12MB2521 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "matthew.william.auld@gmail.com" , "dri-devel@lists.freedesktop.org" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gVGh1LCBNYXIgMTgsIDIwMjEgYXQgMDg6NDc6MTdQTSArMDgwMCwgQ2hyaXN0aWFuIEvvv71u aWcgd3JvdGU6Cj4gTW92ZSB0aGUgaXRlcmF0aW9uIG9mIHRoZSBnbG9iYWwgbHJ1IGludG8gdGhl IG5ldyBmdW5jdGlvbgo+IHR0bV9nbG9iYWxfc3dhcG91dCgpIGFuZCB1c2UgdGhhdCBpbnN0ZWFk IGluIGRyaXZlcnMuCj4gCj4gdjI6IGNvbnNpc3RlbnRseSByZXR1cm4gaW50Cj4gCj4gU2lnbmVk LW9mZi1ieTogQ2hyaXN0aWFuIEs/bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+CgpSZXZp ZXdlZC1ieTogSHVhbmcgUnVpIDxyYXkuaHVhbmdAYW1kLmNvbT4KCj4gLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS90dG0vdHRtX2JvLmMgICAgICAgIHwgNTcgKysrKysrKystLS0tLS0tLS0tLS0tLS0t LS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fZGV2aWNlLmMgICAgfCAyOSArKysrKysr KysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fdHQuYyAgICAgICAgfCAgMiArLQo+ ICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3R0bV9tZW1vcnkuYyB8ICAzICstCj4gIGRyaXZlcnMv Z3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jIHwgIDIgKy0KPiAgaW5jbHVkZS9kcm0vdHRtL3R0 bV9ib19hcGkuaCAgICAgICAgfCAgMyArLQo+ICBpbmNsdWRlL2RybS90dG0vdHRtX2RldmljZS5o ICAgICAgICB8ICAyICsKPiAgNyBmaWxlcyBjaGFuZ2VkLCA1MyBpbnNlcnRpb25zKCspLCA0NSBk ZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8u YyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKPiBpbmRleCAzYzIzZTg2M2EzZjAuLjY2 ZTAwYjQwNGVjMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYwo+IEBAIC0xMTkzLDU2ICsxMTkzLDM1 IEBAIGludCB0dG1fYm9fd2FpdChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+ICB9Cj4g IEVYUE9SVF9TWU1CT0wodHRtX2JvX3dhaXQpOwo+ICAKPiAtLyoKPiAtICogQSBidWZmZXIgb2Jq ZWN0IHNocmluayBtZXRob2QgdGhhdCB0cmllcyB0byBzd2FwIG91dCB0aGUgZmlyc3QKPiAtICog YnVmZmVyIG9iamVjdCBvbiB0aGUgYm9fZ2xvYmFsOjpzd2FwX2xydSBsaXN0Lgo+IC0gKi8KPiAt aW50IHR0bV9ib19zd2Fwb3V0KHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4LCBnZnBfdCBn ZnBfZmxhZ3MpCj4gK2ludCB0dG1fYm9fc3dhcG91dChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KmJvLCBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCwKPiArCQkgICBnZnBfdCBnZnBfZmxh Z3MpCj4gIHsKPiAgCXN0cnVjdCB0dG1fZ2xvYmFsICpnbG9iID0gJnR0bV9nbG9iOwo+IC0Jc3Ry dWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibzsKPiAtCWludCByZXQgPSAtRUJVU1k7Cj4gIAlib29s IGxvY2tlZDsKPiAtCXVuc2lnbmVkIGk7Cj4gLQo+IC0Jc3Bpbl9sb2NrKCZnbG9iLT5scnVfbG9j ayk7Cj4gLQlmb3IgKGkgPSAwOyBpIDwgVFRNX01BWF9CT19QUklPUklUWTsgKytpKSB7Cj4gLQkJ bGlzdF9mb3JfZWFjaF9lbnRyeShibywgJmdsb2ItPnN3YXBfbHJ1W2ldLCBzd2FwKSB7Cj4gLQkJ CWlmICghdHRtX2JvX2V2aWN0X3N3YXBvdXRfYWxsb3dhYmxlKGJvLCBjdHgsICZsb2NrZWQsCj4g LQkJCQkJCQkgICAgTlVMTCkpCj4gLQkJCQljb250aW51ZTsKPiAtCj4gLQkJCWlmICghdHRtX2Jv X2dldF91bmxlc3NfemVybyhibykpIHsKPiAtCQkJCWlmIChsb2NrZWQpCj4gLQkJCQkJZG1hX3Jl c3ZfdW5sb2NrKGJvLT5iYXNlLnJlc3YpOwo+IC0JCQkJY29udGludWU7Cj4gLQkJCX0KPiArCWlu dCByZXQ7Cj4gIAo+IC0JCQlyZXQgPSAwOwo+IC0JCQlicmVhazsKPiAtCQl9Cj4gLQkJaWYgKCFy ZXQpCj4gLQkJCWJyZWFrOwo+IC0JfQo+ICsJaWYgKCF0dG1fYm9fZXZpY3Rfc3dhcG91dF9hbGxv d2FibGUoYm8sIGN0eCwgJmxvY2tlZCwgTlVMTCkpCj4gKwkJcmV0dXJuIC1FQlVTWTsKPiAgCj4g LQlpZiAocmV0KSB7Cj4gLQkJc3Bpbl91bmxvY2soJmdsb2ItPmxydV9sb2NrKTsKPiAtCQlyZXR1 cm4gcmV0Owo+ICsJaWYgKCF0dG1fYm9fZ2V0X3VubGVzc196ZXJvKGJvKSkgewo+ICsJCWlmIChs b2NrZWQpCj4gKwkJCWRtYV9yZXN2X3VubG9jayhiby0+YmFzZS5yZXN2KTsKPiArCQlyZXR1cm4g LUVCVVNZOwo+ICAJfQo+ICAKPiAgCWlmIChiby0+ZGVsZXRlZCkgewo+IC0JCXJldCA9IHR0bV9i b19jbGVhbnVwX3JlZnMoYm8sIGZhbHNlLCBmYWxzZSwgbG9ja2VkKTsKPiArCQl0dG1fYm9fY2xl YW51cF9yZWZzKGJvLCBmYWxzZSwgZmFsc2UsIGxvY2tlZCk7Cj4gIAkJdHRtX2JvX3B1dChibyk7 Cj4gLQkJcmV0dXJuIHJldDsKPiArCQlyZXR1cm4gMDsKPiAgCX0KPiAgCj4gIAl0dG1fYm9fZGVs X2Zyb21fbHJ1KGJvKTsKPiArCS8qIFRPRE86IENsZWFudXAgdGhlIGxvY2tpbmcgKi8KPiAgCXNw aW5fdW5sb2NrKCZnbG9iLT5scnVfbG9jayk7Cj4gIAo+IC0JLyoqCj4gKwkvKgo+ICAJICogTW92 ZSB0byBzeXN0ZW0gY2FjaGVkCj4gIAkgKi8KPiAtCj4gIAlpZiAoYm8tPm1lbS5tZW1fdHlwZSAh PSBUVE1fUExfU1lTVEVNKSB7Cj4gIAkJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0eCA9IHsg ZmFsc2UsIGZhbHNlIH07Cj4gIAkJc3RydWN0IHR0bV9yZXNvdXJjZSBldmljdF9tZW07Cj4gQEAg LTEyNjIsMjkgKzEyNDEsMjYgQEAgaW50IHR0bV9ib19zd2Fwb3V0KHN0cnVjdCB0dG1fb3BlcmF0 aW9uX2N0eCAqY3R4LCBnZnBfdCBnZnBfZmxhZ3MpCj4gIAkJfQo+ICAJfQo+ICAKPiAtCS8qKgo+ ICsJLyoKPiAgCSAqIE1ha2Ugc3VyZSBCTyBpcyBpZGxlLgo+ICAJICovCj4gLQo+ICAJcmV0ID0g dHRtX2JvX3dhaXQoYm8sIGZhbHNlLCBmYWxzZSk7Cj4gIAlpZiAodW5saWtlbHkocmV0ICE9IDAp KQo+ICAJCWdvdG8gb3V0Owo+ICAKPiAgCXR0bV9ib191bm1hcF92aXJ0dWFsKGJvKTsKPiAgCj4g LQkvKioKPiArCS8qCj4gIAkgKiBTd2FwIG91dC4gQnVmZmVyIHdpbGwgYmUgc3dhcHBlZCBpbiBh Z2FpbiBhcyBzb29uIGFzCj4gIAkgKiBhbnlvbmUgdHJpZXMgdG8gYWNjZXNzIGEgdHRtIHBhZ2Uu Cj4gIAkgKi8KPiAtCj4gIAlpZiAoYm8tPmJkZXYtPmZ1bmNzLT5zd2FwX25vdGlmeSkKPiAgCQli by0+YmRldi0+ZnVuY3MtPnN3YXBfbm90aWZ5KGJvKTsKPiAgCj4gIAlyZXQgPSB0dG1fdHRfc3dh cG91dChiby0+YmRldiwgYm8tPnR0bSwgZ2ZwX2ZsYWdzKTsKPiAgb3V0Ogo+ICAKPiAtCS8qKgo+ IC0JICoKPiArCS8qCj4gIAkgKiBVbnJlc2VydmUgd2l0aG91dCBwdXR0aW5nIG9uIExSVSB0byBh dm9pZCBzd2FwcGluZyBvdXQgYW4KPiAgCSAqIGFscmVhZHkgc3dhcHBlZCBidWZmZXIuCj4gIAkg Ki8KPiBAQCAtMTI5Myw3ICsxMjY5LDYgQEAgaW50IHR0bV9ib19zd2Fwb3V0KHN0cnVjdCB0dG1f b3BlcmF0aW9uX2N0eCAqY3R4LCBnZnBfdCBnZnBfZmxhZ3MpCj4gIAl0dG1fYm9fcHV0KGJvKTsK PiAgCXJldHVybiByZXQ7Cj4gIH0KPiAtRVhQT1JUX1NZTUJPTCh0dG1fYm9fc3dhcG91dCk7Cj4g IAo+ICB2b2lkIHR0bV9ib190dF9kZXN0cm95KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8p Cj4gIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fZGV2aWNlLmMgYi9k cml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9kZXZpY2UuYwo+IGluZGV4IDk1ZTFiN2IxZjJlNi4uYjE0 MjQxODlmZGZiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2RldmljZS5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fZGV2aWNlLmMKPiBAQCAtMTAyLDYgKzEw MiwzNSBAQCBzdGF0aWMgaW50IHR0bV9nbG9iYWxfaW5pdCh2b2lkKQo+ICAJcmV0dXJuIHJldDsK PiAgfQo+ICAKPiArLyoqCj4gKyAqIEEgYnVmZmVyIG9iamVjdCBzaHJpbmsgbWV0aG9kIHRoYXQg dHJpZXMgdG8gc3dhcCBvdXQgdGhlIGZpcnN0Cj4gKyAqIGJ1ZmZlciBvYmplY3Qgb24gdGhlIGds b2JhbDo6c3dhcF9scnUgbGlzdC4KPiArICovCj4gK2ludCB0dG1fZ2xvYmFsX3N3YXBvdXQoc3Ry dWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgsIGdmcF90IGdmcF9mbGFncykKPiArewo+ICsJc3Ry dWN0IHR0bV9nbG9iYWwgKmdsb2IgPSAmdHRtX2dsb2I7Cj4gKwlzdHJ1Y3QgdHRtX2J1ZmZlcl9v YmplY3QgKmJvOwo+ICsJdW5zaWduZWQgaTsKPiArCWludCByZXQ7Cj4gKwo+ICsJc3Bpbl9sb2Nr KCZnbG9iLT5scnVfbG9jayk7Cj4gKwlmb3IgKGkgPSAwOyBpIDwgVFRNX01BWF9CT19QUklPUklU WTsgKytpKSB7Cj4gKwkJbGlzdF9mb3JfZWFjaF9lbnRyeShibywgJmdsb2ItPnN3YXBfbHJ1W2ld LCBzd2FwKSB7Cj4gKwkJCXVpbnQzMl90IG51bV9wYWdlcyA9IGJvLT50dG0tPm51bV9wYWdlczsK PiArCj4gKwkJCXJldCA9IHR0bV9ib19zd2Fwb3V0KGJvLCBjdHgsIGdmcF9mbGFncyk7Cj4gKwkJ CS8qIHR0bV9ib19zd2Fwb3V0IGhhcyBkcm9wcGVkIHRoZSBscnVfbG9jayAqLwo+ICsJCQlpZiAo IXJldCkKPiArCQkJCXJldHVybiBudW1fcGFnZXM7Cj4gKwkJCWlmIChyZXQgIT0gLUVCVVNZKQo+ ICsJCQkJcmV0dXJuIHJldDsKPiArCQl9Cj4gKwl9Cj4gKwlzcGluX3VubG9jaygmZ2xvYi0+bHJ1 X2xvY2spOwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArRVhQT1JUX1NZTUJPTCh0dG1fZ2xvYmFsX3N3 YXBvdXQpOwo+ICsKPiAgc3RhdGljIHZvaWQgdHRtX2luaXRfc3lzbWFuKHN0cnVjdCB0dG1fZGV2 aWNlICpiZGV2KQo+ICB7Cj4gIAlzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiA9ICZi ZGV2LT5zeXNtYW47Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3R0LmMg Yi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV90dC5jCj4gaW5kZXggMmYwODMzYzk4ZDJjLi45NWI1 Y2ZmMjVmNGMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fdHQuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3R0LmMKPiBAQCAtMzY5LDcgKzM2OSw3IEBAIHN0 YXRpYyB1bnNpZ25lZCBsb25nIHR0bV90dF9zaHJpbmtlcl9zY2FuKHN0cnVjdCBzaHJpbmtlciAq c2hyaW5rLAo+ICAJfTsKPiAgCWludCByZXQ7Cj4gIAo+IC0JcmV0ID0gdHRtX2JvX3N3YXBvdXQo JmN0eCwgR0ZQX05PRlMpOwo+ICsJcmV0ID0gdHRtX2dsb2JhbF9zd2Fwb3V0KCZjdHgsIEdGUF9O T0ZTKTsKPiAgCXJldHVybiByZXQgPCAwID8gU0hSSU5LX0VNUFRZIDogcmV0Owo+ICB9Cj4gIAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3R0bV9tZW1vcnkuYyBiL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdHRtX21lbW9yeS5jCj4gaW5kZXggZTk3MmFmMDdkMDI5Li4xMDRi OTVhOGM3YTIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC90dG1fbWVtb3J5 LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3R0bV9tZW1vcnkuYwo+IEBAIC0zOCw2 ICszOCw3IEBACj4gIAo+ICAjaW5jbHVkZSA8ZHJtL2RybV9kZXZpY2UuaD4KPiAgI2luY2x1ZGUg PGRybS9kcm1fZmlsZS5oPgo+ICsjaW5jbHVkZSA8ZHJtL3R0bS90dG1fZGV2aWNlLmg+Cj4gIAo+ ICAjaW5jbHVkZSAidHRtX21lbW9yeS5oIgo+ICAKPiBAQCAtMjc3LDcgKzI3OCw3IEBAIHN0YXRp YyB2b2lkIHR0bV9zaHJpbmsoc3RydWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9iLCBib29sIGZyb21f d3EsCj4gIAo+ICAJd2hpbGUgKHR0bV96b25lc19hYm92ZV9zd2FwX3RhcmdldChnbG9iLCBmcm9t X3dxLCBleHRyYSkpIHsKPiAgCQlzcGluX3VubG9jaygmZ2xvYi0+bG9jayk7Cj4gLQkJcmV0ID0g dHRtX2JvX3N3YXBvdXQoY3R4LCBHRlBfS0VSTkVMKTsKPiArCQlyZXQgPSB0dG1fZ2xvYmFsX3N3 YXBvdXQoY3R4LCBHRlBfS0VSTkVMKTsKPiAgCQlzcGluX2xvY2soJmdsb2ItPmxvY2spOwo+ICAJ CWlmICh1bmxpa2VseShyZXQgPCAwKSkKPiAgCQkJYnJlYWs7Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92 bXdnZnhfZHJ2LmMKPiBpbmRleCA2OTEwMTExMDk5YzguLmI5OTE0MjJlMTU2YyAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jCj4gQEAgLTEzNzEsNyArMTM3MSw3IEBAIHN0YXRp YyBpbnQgdm13X3BtX2ZyZWV6ZShzdHJ1Y3QgZGV2aWNlICprZGV2KQo+ICAJdm13X2V4ZWNidWZf cmVsZWFzZV9waW5uZWRfYm8oZGV2X3ByaXYpOwo+ICAJdm13X3Jlc291cmNlX2V2aWN0X2FsbChk ZXZfcHJpdik7Cj4gIAl2bXdfcmVsZWFzZV9kZXZpY2VfZWFybHkoZGV2X3ByaXYpOwo+IC0Jd2hp bGUgKHR0bV9ib19zd2Fwb3V0KCZjdHgsIEdGUF9LRVJORUwpID4gMCk7Cj4gKwl3aGlsZSAodHRt X2dsb2JhbF9zd2Fwb3V0KCZjdHgsIEdGUF9LRVJORUwpID4gMCk7Cj4gIAlpZiAoZGV2X3ByaXYt PmVuYWJsZV9mYikKPiAgCQl2bXdfZmlmb19yZXNvdXJjZV9kZWMoZGV2X3ByaXYpOwo+ICAJaWYg KGF0b21pY19yZWFkKCZkZXZfcHJpdi0+bnVtX2ZpZm9fcmVzb3VyY2VzKSAhPSAwKSB7Cj4gZGlm ZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fYXBpLmggYi9pbmNsdWRlL2RybS90dG0v dHRtX2JvX2FwaS5oCj4gaW5kZXggNGZiNTIzZGZhYjMyLi41MDQ0YWMzMzA4NTggMTAwNjQ0Cj4g LS0tIGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaAo+ICsrKyBiL2luY2x1ZGUvZHJtL3R0 bS90dG1fYm9fYXBpLmgKPiBAQCAtNTYwLDcgKzU2MCw4IEBAIHNzaXplX3QgdHRtX2JvX2lvKHN0 cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgZmlsZSAqZmlscCwKPiAgCQkgIGNvbnN0IGNo YXIgX191c2VyICp3YnVmLCBjaGFyIF9fdXNlciAqcmJ1ZiwKPiAgCQkgIHNpemVfdCBjb3VudCwg bG9mZl90ICpmX3BvcywgYm9vbCB3cml0ZSk7Cj4gIAo+IC1pbnQgdHRtX2JvX3N3YXBvdXQoc3Ry dWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgsIGdmcF90IGdmcF9mbGFncyk7Cj4gK2ludCB0dG1f Ym9fc3dhcG91dChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLCBzdHJ1Y3QgdHRtX29wZXJh dGlvbl9jdHggKmN0eCwKPiArCQkgICBnZnBfdCBnZnBfZmxhZ3MpOwo+ICAKPiAgLyoqCj4gICAq IHR0bV9ib191c2VzX2VtYmVkZGVkX2dlbV9vYmplY3QgLSBjaGVjayBpZiB0aGUgZ2l2ZW4gYm8g dXNlcyB0aGUKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9kZXZpY2UuaCBiL2lu Y2x1ZGUvZHJtL3R0bS90dG1fZGV2aWNlLmgKPiBpbmRleCAwMzViYmMwNDRhM2IuLjZhMGIyNjdk NGZlNiAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS90dG0vdHRtX2RldmljZS5oCj4gKysrIGIv aW5jbHVkZS9kcm0vdHRtL3R0bV9kZXZpY2UuaAo+IEBAIC0yOTcsNiArMjk3LDggQEAgc3RydWN0 IHR0bV9kZXZpY2Ugewo+ICAJc3RydWN0IGRlbGF5ZWRfd29yayB3cTsKPiAgfTsKPiAgCj4gK2xv bmcgdHRtX2dsb2JhbF9zd2Fwb3V0KHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4LCBnZnBf dCBnZnBfZmxhZ3MpOwo+ICsKPiAgc3RhdGljIGlubGluZSBzdHJ1Y3QgdHRtX3Jlc291cmNlX21h bmFnZXIgKgo+ICB0dG1fbWFuYWdlcl90eXBlKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBpbnQg bWVtX3R5cGUpCj4gIHsKPiAtLSAKPiAyLjI1LjEKPiAKPiBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwo+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPiBkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9uYW0xMS5zYWZlbGlua3MucHJv dGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGbGlzdHMuZnJlZWRlc2t0b3Au b3JnJTJGbWFpbG1hbiUyRmxpc3RpbmZvJTJGZHJpLWRldmVsJmFtcDtkYXRhPTA0JTdDMDElN0Ny YXkuaHVhbmclNDBhbWQuY29tJTdDNWU4ODRkYzcyMTgzNDFmNTQwNWEwOGQ4ZWEwYmZhYjMlN0Mz ZGQ4OTYxZmU0ODg0ZTYwOGUxMWE4MmQ5OTRlMTgzZCU3QzAlN0MwJTdDNjM3NTE2Njg0NDc4NzQx MjM4JTdDVW5rbm93biU3Q1RXRnBiR1pzYjNkOGV5SldJam9pTUM0d0xqQXdNREFpTENKUUlqb2lW Mmx1TXpJaUxDSkJUaUk2SWsxaGFXd2lMQ0pYVkNJNk1uMCUzRCU3QzEwMDAmYW1wO3NkYXRhPWJy bXlLMG1MOTV3NWFHNTJoREZkTUR3MUN5bU1EbnVJUlRRSzY0cm9LS2slM0QmYW1wO3Jlc2VydmVk PTAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRl dmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==