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=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER,NICE_REPLY_A,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 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 C26B7C433DF for ; Tue, 4 Aug 2020 10:33:40 +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 97E232065C for ; Tue, 4 Aug 2020 10:33:40 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="1tXYREk0" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 97E232065C Authentication-Results: mail.kernel.org; dmarc=none (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 976AE897B5; Tue, 4 Aug 2020 10:33:39 +0000 (UTC) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2058.outbound.protection.outlook.com [40.107.94.58]) by gabe.freedesktop.org (Postfix) with ESMTPS id B11F6897B5 for ; Tue, 4 Aug 2020 10:33:38 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=X3dib9l000eeK3CQVq4CsaKjIewlEDyH9HXfVs9v1t2zlNzVd57hJ7qJRqasT/vxRnuRZYFjg2ZiVaAEfShVrqCPQCvsMLVCN81M0f4iGrrkJ2hnJDgW1323E4fyAnpk1V2fsc+OEU/nXpPOWfM5DsWImxHBaXT6Y8Q2TTlujY9/RrLGpkB+d3PPHdUK5AG+UbO+Y6tIQ3ayvC8g24zTnkmp4F+PfnAJRv9UXqf22pftY0m21xGyzeVjlU2H+rHNHK9pk5lR0UWBVRvBqN0jG65pztm0C5IibTB8AOGJDIUI6KaGv+/zyHiVxPYj42TBugsBMl/GlPGlCssc4WtxGg== 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=ggMcGEjEI2V9AUcqREAEnh1PDYGKCqoS3VDe7atOqTo=; b=UEpmCAvhGltSsXKENkJbpRiA+wcl2y3ZoKCRUXumw+Y+IzHC/mJKPWJ3nAst/DwwWlifv9luGq6W6qvZepnQrrkPY6fRd8a5fMJv4brxdTorKdOGZ/PLYuXPmoSudg6SrG4BYKogqtA+nrIYcmQlmaSr32OKGvx3K+0WH3CeVJBqDjZIeqdCNV9JBE7JpMpyqZofncXDXCZdFMIbCng5jPB12meFUq2HCpCHdb0fBm8cnDCGaM7zQIZCPxEAUaZkbIuvHcWzCboh+GkPXC9F1eYfXipRjVyiBpHDKp47kwsqTyTkn5FdacuC1UZnrU8kz/f5hv4GIQOKP54EMCn9fg== 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=amdcloud.onmicrosoft.com; s=selector2-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ggMcGEjEI2V9AUcqREAEnh1PDYGKCqoS3VDe7atOqTo=; b=1tXYREk05Sd4h4WGjtEpnVKf0pcB4pqgiChE7KLGuF9DPz+Auaa1OKX+mECnd2ovpIarB89WhNSDDEF2cruOPIcmE9VMZ52jz4BcIGvT1U2B0v5GV6SWaO+XyUftUQPrA5Zr8neExAA7u0I1trcbbE3BOIW/W2JejxfuWwbhElk= Authentication-Results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=amd.com; Received: from MN2PR12MB3775.namprd12.prod.outlook.com (2603:10b6:208:159::19) by MN2PR12MB4254.namprd12.prod.outlook.com (2603:10b6:208:1d0::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3239.17; Tue, 4 Aug 2020 10:33:37 +0000 Received: from MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::a16e:8812:b4c0:918d]) by MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::a16e:8812:b4c0:918d%6]) with mapi id 15.20.3239.022; Tue, 4 Aug 2020 10:33:37 +0000 Subject: Re: [PATCH 05/59] drm/ttm/amdgpu: consolidate ttm reserve paths To: Dave Airlie , dri-devel@lists.freedesktop.org References: <20200804025632.3868079-1-airlied@gmail.com> <20200804025632.3868079-6-airlied@gmail.com> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: <8bc9e384-e0ff-ddd0-63c6-87e5843378e4@amd.com> Date: Tue, 4 Aug 2020 12:33:32 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 In-Reply-To: <20200804025632.3868079-6-airlied@gmail.com> Content-Language: en-US X-ClientProxiedBy: ZR0P278CA0035.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:1c::22) To MN2PR12MB3775.namprd12.prod.outlook.com (2603:10b6:208:159::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [IPv6:2a02:908:1252:fb60:be8a:bd56:1f94:86e7] (2a02:908:1252:fb60:be8a:bd56:1f94:86e7) by ZR0P278CA0035.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:1c::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3239.16 via Frontend Transport; Tue, 4 Aug 2020 10:33:35 +0000 X-Originating-IP: [2a02:908:1252:fb60:be8a:bd56:1f94:86e7] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 7cb76463-2d17-4e05-18e6-08d83861d874 X-MS-TrafficTypeDiagnostic: MN2PR12MB4254: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8273; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: S1Vpx1SDNHyRoQN8HwdJjLNbPfjEgTR76b6/8a1xc96aNPDDPhxb6HEUH1mvwkKah5DhukhzanjssJMDn0TyT/i1lX+/wpXZmggK6efNvLI9PuxVTouysywx1zWwStP/LSPW18yO9SrsgZntOUtq+h73cqacunLBGTN/dKESqfvYJFTWQh7uPJxdayZlprN0SVakEQs98cCDnAt6fwE0Eba05Rr4Zrait+jv/U6WLmLt9lJXK5juhaJhOwd8C93+yoNhrFWj7MIxS+ytrRRmVPlLHoXnUCqoK8pQTlR47S1dWMgAR8IR21YM/td2NIfzPjGnQCEqbxp0n6rhAMqFDBtklE0EaXXgxIaeGBIl6E8DPsq4xFFt0wQ1VaYY4JiI X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR12MB3775.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(136003)(376002)(346002)(366004)(396003)(39860400002)(66556008)(36756003)(66946007)(31686004)(16526019)(66476007)(186003)(8936002)(31696002)(66574015)(6486002)(83380400001)(52116002)(4326008)(2616005)(6666004)(316002)(86362001)(2906002)(478600001)(8676002)(5660300002)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: v1Dpeyk8fTYid0qGql5lpJio2QKBitcmthviJDMDZ3GaU+HB7pg74KzqyLFoIj1SeoaUdunp/qVMF6wGXbjc0FKI7xs6RR2Q8Y+5umL/UvyNEgIJo4Mu0BmW1M8BZO0ffeFwiYZyf2RJfMdR021x3XOYmrBlU41G/04z9hDFs5n/cKr7E4HoCFzR940XBvSbBUsaeTAwlxpHRaw7VyGUFu53tcDkUDuz71GC0LfFHXueau+B1o6cLJX4bU3salXW0vtkZlCNiNzkd1xsqVIYgb0vvtLorIVFPHXO3bTviA1RWYQwz9PDUB2J7NOREWNqRCxdgd4TfgfFKBpwdxLJ2cVxfdXBAr4YToqVsSq5TMx+BBRfgkeVG1x/AnB3Z6EULwOnXoRZVyohjbaa6+hiz+NzqIP0sOCMoqX9/x5E784FV6X9sjsZEK+O8Fq8Vf30IGFYdRyFuclBGjrdXXbPaA5RenCcY/BcOwZhMnD4BxX+xSd5y5FsnN5+eZ9Wg3cNYhbL43i2+IfSIr+d7SBBtXzA8dUfkOprZJC0zdgLZ0iBeccwZ1wiNqg7IEKULictPckhJmvziRkuGUN6OvcDr/TScpxZQjTaoMYvxcxE7d8ZIRnbv2i8QXwQAlK9zyF9s1IdaAvtDoN+WzlyerOGZraUSKFLlAmTqscNfc4hjNQbohQ6YCMvIG1Ta7FwENxjSHQs3ZrBnLTnrJoY6M8YXw== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7cb76463-2d17-4e05-18e6-08d83861d874 X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3775.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2020 10:33:36.9444 (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: eSIozvkkhwppKbYe9CIB8obxx4HKxZYkdxppNQNX0Yav/clkorIh+aBQ4XbA2SW+ X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4254 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: sroland@vmware.com, linux-graphics-maintainer@vmware.com, bskeggs@redhat.com, kraxel@redhat.com Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" QW0gMDQuMDguMjAgdW0gMDQ6NTUgc2NocmllYiBEYXZlIEFpcmxpZToKPiBGcm9tOiBEYXZlIEFp cmxpZSA8YWlybGllZEByZWRoYXQuY29tPgo+Cj4gRHJvcCB0aGUgV0FSTl9PTiBhbmQgY29uc29s aWRhdGUgdGhlIHR3byBwYXRocyBpbnRvIG9uZS4KPgo+IFVzZSB0aGUgY29uc29saWRhdGUgc2xv d3BhdGggaW4gdGhlIGV4ZWNidWYgdXRpbHMgY29kZS4KPgo+IFNpZ25lZC1vZmYtYnk6IERhdmUg QWlybGllIDxhaXJsaWVkQHJlZGhhdC5jb20+CgpSZXZpZXdlZC1ieTogQ2hyaXN0aWFuIEvDtm5p ZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgoKPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuaCB8ICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vdHRt L3R0bV9leGVjYnVmX3V0aWwuYyAgICAgfCAxMiArLS0KPiAgIGluY2x1ZGUvZHJtL3R0bS90dG1f Ym9fZHJpdmVyLmggICAgICAgICAgICB8IDkxICsrKystLS0tLS0tLS0tLS0tLS0tLS0KPiAgIDMg ZmlsZXMgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygrKSwgODUgZGVsZXRpb25zKC0pCj4KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5oIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5oCj4gaW5kZXggYWZhNTE4OWRi YTdkLi5lMDFlODkwMzc0MWUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X29iamVjdC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X29iamVjdC5oCj4gQEAgLTE2MCw3ICsxNjAsNyBAQCBzdGF0aWMgaW5saW5lIGludCBhbWRn cHVfYm9fcmVzZXJ2ZShzdHJ1Y3QgYW1kZ3B1X2JvICpibywgYm9vbCBub19pbnRyKQo+ICAgCXN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gYW1kZ3B1X3R0bV9hZGV2KGJvLT50Ym8uYmRldik7 Cj4gICAJaW50IHI7Cj4gICAKPiAtCXIgPSBfX3R0bV9ib19yZXNlcnZlKCZiby0+dGJvLCAhbm9f aW50ciwgZmFsc2UsIE5VTEwpOwo+ICsJciA9IHR0bV9ib19yZXNlcnZlKCZiby0+dGJvLCAhbm9f aW50ciwgZmFsc2UsIE5VTEwpOwo+ICAgCWlmICh1bmxpa2VseShyICE9IDApKSB7Cj4gICAJCWlm IChyICE9IC1FUkVTVEFSVFNZUykKPiAgIAkJCWRldl9lcnIoYWRldi0+ZGV2LCAiJXAgcmVzZXJ2 ZSBmYWlsZWRcbiIsIGJvKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1f ZXhlY2J1Zl91dGlsLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9leGVjYnVmX3V0aWwuYwo+ IGluZGV4IDE3OTdmMDRjMDUzNC4uOGE4ZjFhNmE4M2E2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS90dG0vdHRtX2V4ZWNidWZfdXRpbC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0 bS90dG1fZXhlY2J1Zl91dGlsLmMKPiBAQCAtOTMsNyArOTMsNyBAQCBpbnQgdHRtX2V1X3Jlc2Vy dmVfYnVmZmVycyhzdHJ1Y3Qgd3dfYWNxdWlyZV9jdHggKnRpY2tldCwKPiAgIAlsaXN0X2Zvcl9l YWNoX2VudHJ5KGVudHJ5LCBsaXN0LCBoZWFkKSB7Cj4gICAJCXN0cnVjdCB0dG1fYnVmZmVyX29i amVjdCAqYm8gPSBlbnRyeS0+Ym87Cj4gICAKPiAtCQlyZXQgPSBfX3R0bV9ib19yZXNlcnZlKGJv LCBpbnRyLCAodGlja2V0ID09IE5VTEwpLCB0aWNrZXQpOwo+ICsJCXJldCA9IHR0bV9ib19yZXNl cnZlKGJvLCBpbnRyLCAodGlja2V0ID09IE5VTEwpLCB0aWNrZXQpOwo+ICAgCQlpZiAocmV0ID09 IC1FQUxSRUFEWSAmJiBkdXBzKSB7Cj4gICAJCQlzdHJ1Y3QgdHRtX3ZhbGlkYXRlX2J1ZmZlciAq c2FmZSA9IGVudHJ5Owo+ICAgCQkJZW50cnkgPSBsaXN0X3ByZXZfZW50cnkoZW50cnksIGhlYWQp Owo+IEBAIC0xMTksMTMgKzExOSw3IEBAIGludCB0dG1fZXVfcmVzZXJ2ZV9idWZmZXJzKHN0cnVj dCB3d19hY3F1aXJlX2N0eCAqdGlja2V0LAo+ICAgCQl0dG1fZXVfYmFja29mZl9yZXNlcnZhdGlv bl9yZXZlcnNlKGxpc3QsIGVudHJ5KTsKPiAgIAo+ICAgCQlpZiAocmV0ID09IC1FREVBRExLKSB7 Cj4gLQkJCWlmIChpbnRyKSB7Cj4gLQkJCQlyZXQgPSBkbWFfcmVzdl9sb2NrX3Nsb3dfaW50ZXJy dXB0aWJsZShiby0+YmFzZS5yZXN2LAo+IC0JCQkJCQkJCQkJIHRpY2tldCk7Cj4gLQkJCX0gZWxz ZSB7Cj4gLQkJCQlkbWFfcmVzdl9sb2NrX3Nsb3coYm8tPmJhc2UucmVzdiwgdGlja2V0KTsKPiAt CQkJCXJldCA9IDA7Cj4gLQkJCX0KPiArCQkJcmV0ID0gdHRtX2JvX3Jlc2VydmVfc2xvd3BhdGgo Ym8sIGludHIsIHRpY2tldCk7Cj4gICAJCX0KPiAgIAo+ICAgCQlpZiAoIXJldCAmJiBlbnRyeS0+ bnVtX3NoYXJlZCkKPiBAQCAtMTMzLDggKzEyNyw2IEBAIGludCB0dG1fZXVfcmVzZXJ2ZV9idWZm ZXJzKHN0cnVjdCB3d19hY3F1aXJlX2N0eCAqdGlja2V0LAo+ICAgCQkJCQkJCQllbnRyeS0+bnVt X3NoYXJlZCk7Cj4gICAKPiAgIAkJaWYgKHVubGlrZWx5KHJldCAhPSAwKSkgewo+IC0JCQlpZiAo cmV0ID09IC1FSU5UUikKPiAtCQkJCXJldCA9IC1FUkVTVEFSVFNZUzsKPiAgIAkJCWlmICh0aWNr ZXQpIHsKPiAgIAkJCQl3d19hY3F1aXJlX2RvbmUodGlja2V0KTsKPiAgIAkJCQl3d19hY3F1aXJl X2ZpbmkodGlja2V0KTsKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2 ZXIuaCBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmgKPiBpbmRleCAwOTIxMWVjYmY4 NGYuLmMyMGZlZjRkYTFkMyAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2Ry aXZlci5oCj4gKysrIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaAo+IEBAIC01ODgs MjkgKzU4OCwzMCBAQCBpbnQgdHRtX21lbV9pb19sb2NrKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFu YWdlciAqbWFuLCBib29sIGludGVycnVwdGlibGUpOwo+ICAgdm9pZCB0dG1fbWVtX2lvX3VubG9j ayhzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbik7Cj4gICAKPiAgIC8qKgo+IC0gKiBf X3R0bV9ib19yZXNlcnZlOgo+ICsgKiB0dG1fYm9fcmVzZXJ2ZToKPiAgICAqCj4gICAgKiBAYm86 IEEgcG9pbnRlciB0byBhIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdC4KPiAgICAqIEBpbnRlcnJ1 cHRpYmxlOiBTbGVlcCBpbnRlcnJ1cHRpYmxlIGlmIHdhaXRpbmcuCj4gICAgKiBAbm9fd2FpdDog RG9uJ3Qgc2xlZXAgd2hpbGUgdHJ5aW5nIHRvIHJlc2VydmUsIHJhdGhlciByZXR1cm4gLUVCVVNZ Lgo+ICAgICogQHRpY2tldDogdGlja2V0IHVzZWQgdG8gYWNxdWlyZSB0aGUgd3dfbXV0ZXguCj4g ICAgKgo+IC0gKiBXaWxsIG5vdCByZW1vdmUgcmVzZXJ2ZWQgYnVmZmVycyBmcm9tIHRoZSBscnUg bGlzdHMuCj4gLSAqIE90aGVyd2lzZSBpZGVudGljYWwgdG8gdHRtX2JvX3Jlc2VydmUuCj4gKyAq IExvY2tzIGEgYnVmZmVyIG9iamVjdCBmb3IgdmFsaWRhdGlvbi4gKE9yIHByZXZlbnRzIG90aGVy IHByb2Nlc3NlcyBmcm9tCj4gKyAqIGxvY2tpbmcgaXQgZm9yIHZhbGlkYXRpb24pLCB3aGlsZSB0 YWtpbmcgYSBudW1iZXIgb2YgbWVhc3VyZXMgdG8gcHJldmVudAo+ICsgKiBkZWFkbG9ja3MuCj4g ICAgKgo+ICAgICogUmV0dXJuczoKPiAgICAqIC1FREVBRExLOiBUaGUgcmVzZXJ2YXRpb24gbWF5 IGNhdXNlIGEgZGVhZGxvY2suCj4gICAgKiBSZWxlYXNlIGFsbCBidWZmZXIgcmVzZXJ2YXRpb25z LCB3YWl0IGZvciBAYm8gdG8gYmVjb21lIHVucmVzZXJ2ZWQgYW5kCj4gLSAqIHRyeSBhZ2Fpbi4g KG9ubHkgaWYgdXNlX3NlcXVlbmNlID09IDEpLgo+ICsgKiB0cnkgYWdhaW4uCj4gICAgKiAtRVJF U1RBUlRTWVM6IEEgd2FpdCBmb3IgdGhlIGJ1ZmZlciB0byBiZWNvbWUgdW5yZXNlcnZlZCB3YXMg aW50ZXJydXB0ZWQgYnkKPiAgICAqIGEgc2lnbmFsLiBSZWxlYXNlIGFsbCBidWZmZXIgcmVzZXJ2 YXRpb25zIGFuZCByZXR1cm4gdG8gdXNlci1zcGFjZS4KPiAgICAqIC1FQlVTWTogVGhlIGZ1bmN0 aW9uIG5lZWRlZCB0byBzbGVlcCwgYnV0IEBub193YWl0IHdhcyB0cnVlCj4gICAgKiAtRUFMUkVB RFk6IEJvIGFscmVhZHkgcmVzZXJ2ZWQgdXNpbmcgQHRpY2tldC4gVGhpcyBlcnJvciBjb2RlIHdp bGwgb25seQo+ICAgICogYmUgcmV0dXJuZWQgaWYgQHVzZV90aWNrZXQgaXMgc2V0IHRvIHRydWUu Cj4gICAgKi8KPiAtc3RhdGljIGlubGluZSBpbnQgX190dG1fYm9fcmVzZXJ2ZShzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKmJvLAo+IC0JCQkJICAgYm9vbCBpbnRlcnJ1cHRpYmxlLCBib29sIG5v X3dhaXQsCj4gLQkJCQkgICBzdHJ1Y3Qgd3dfYWNxdWlyZV9jdHggKnRpY2tldCkKPiArc3RhdGlj IGlubGluZSBpbnQgdHRtX2JvX3Jlc2VydmUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywK PiArCQkJCSBib29sIGludGVycnVwdGlibGUsIGJvb2wgbm9fd2FpdCwKPiArCQkJCSBzdHJ1Y3Qg d3dfYWNxdWlyZV9jdHggKnRpY2tldCkKPiAgIHsKPiAgIAlpbnQgcmV0ID0gMDsKPiAgIAo+IEBA IC02MzIsNTkgKzYzMyw2IEBAIHN0YXRpYyBpbmxpbmUgaW50IF9fdHRtX2JvX3Jlc2VydmUoc3Ry dWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiAgIAlyZXR1cm4gcmV0Owo+ICAgfQo+ICAgCj4g LS8qKgo+IC0gKiB0dG1fYm9fcmVzZXJ2ZToKPiAtICoKPiAtICogQGJvOiBBIHBvaW50ZXIgdG8g YSBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QuCj4gLSAqIEBpbnRlcnJ1cHRpYmxlOiBTbGVlcCBp bnRlcnJ1cHRpYmxlIGlmIHdhaXRpbmcuCj4gLSAqIEBub193YWl0OiBEb24ndCBzbGVlcCB3aGls ZSB0cnlpbmcgdG8gcmVzZXJ2ZSwgcmF0aGVyIHJldHVybiAtRUJVU1kuCj4gLSAqIEB0aWNrZXQ6 IHRpY2tldCB1c2VkIHRvIGFjcXVpcmUgdGhlIHd3X211dGV4Lgo+IC0gKgo+IC0gKiBMb2NrcyBh IGJ1ZmZlciBvYmplY3QgZm9yIHZhbGlkYXRpb24uIChPciBwcmV2ZW50cyBvdGhlciBwcm9jZXNz ZXMgZnJvbQo+IC0gKiBsb2NraW5nIGl0IGZvciB2YWxpZGF0aW9uKSBhbmQgcmVtb3ZlcyBpdCBm cm9tIGxydSBsaXN0cywgd2hpbGUgdGFraW5nCj4gLSAqIGEgbnVtYmVyIG9mIG1lYXN1cmVzIHRv IHByZXZlbnQgZGVhZGxvY2tzLgo+IC0gKgo+IC0gKiBEZWFkbG9ja3MgbWF5IG9jY3VyIHdoZW4g dHdvIHByb2Nlc3NlcyB0cnkgdG8gcmVzZXJ2ZSBtdWx0aXBsZSBidWZmZXJzIGluCj4gLSAqIGRp ZmZlcmVudCBvcmRlciwgZWl0aGVyIGJ5IHdpbGwgb3IgYXMgYSByZXN1bHQgb2YgYSBidWZmZXIg YmVpbmcgZXZpY3RlZAo+IC0gKiB0byBtYWtlIHJvb20gZm9yIGEgYnVmZmVyIGFscmVhZHkgcmVz ZXJ2ZWQuIChCdWZmZXJzIGFyZSByZXNlcnZlZCBiZWZvcmUKPiAtICogdGhleSBhcmUgZXZpY3Rl ZCkuIFRoZSBmb2xsb3dpbmcgYWxnb3JpdGhtIHByZXZlbnRzIHN1Y2ggZGVhZGxvY2tzIGZyb20K PiAtICogb2NjdXJyaW5nOgo+IC0gKiBQcm9jZXNzZXMgYXR0ZW1wdGluZyB0byByZXNlcnZlIG11 bHRpcGxlIGJ1ZmZlcnMgb3RoZXIgdGhhbiBmb3IgZXZpY3Rpb24sCj4gLSAqICh0eXBpY2FsbHkg ZXhlY2J1ZiksIHNob3VsZCBmaXJzdCBvYnRhaW4gYSB1bmlxdWUgMzItYml0Cj4gLSAqIHZhbGlk YXRpb24gc2VxdWVuY2UgbnVtYmVyLAo+IC0gKiBhbmQgY2FsbCB0aGlzIGZ1bmN0aW9uIHdpdGgg QHVzZV90aWNrZXQgPT0gMSBhbmQgQHRpY2tldC0+c3RhbXAgPT0gdGhlIHVuaXF1ZQo+IC0gKiBz ZXF1ZW5jZSBudW1iZXIuIElmIHVwb24gY2FsbCBvZiB0aGlzIGZ1bmN0aW9uLCB0aGUgYnVmZmVy IG9iamVjdCBpcyBhbHJlYWR5Cj4gLSAqIHJlc2VydmVkLCB0aGUgdmFsaWRhdGlvbiBzZXF1ZW5j ZSBpcyBjaGVja2VkIGFnYWluc3QgdGhlIHZhbGlkYXRpb24KPiAtICogc2VxdWVuY2Ugb2YgdGhl IHByb2Nlc3MgY3VycmVudGx5IHJlc2VydmluZyB0aGUgYnVmZmVyLAo+IC0gKiBhbmQgaWYgdGhl IGN1cnJlbnQgdmFsaWRhdGlvbiBzZXF1ZW5jZSBpcyBncmVhdGVyIHRoYW4gdGhhdCBvZiB0aGUg cHJvY2Vzcwo+IC0gKiBob2xkaW5nIHRoZSByZXNlcnZhdGlvbiwgdGhlIGZ1bmN0aW9uIHJldHVy bnMgLUVERUFETEsuIE90aGVyd2lzZSBpdCBzbGVlcHMKPiAtICogd2FpdGluZyBmb3IgdGhlIGJ1 ZmZlciB0byBiZWNvbWUgdW5yZXNlcnZlZCwgYWZ0ZXIgd2hpY2ggaXQgcmV0cmllcwo+IC0gKiBy ZXNlcnZpbmcuCj4gLSAqIFRoZSBjYWxsZXIgc2hvdWxkLCB3aGVuIHJlY2VpdmluZyBhbiAtRURF QURMSyBlcnJvcgo+IC0gKiByZWxlYXNlIGFsbCBpdHMgYnVmZmVyIHJlc2VydmF0aW9ucywgd2Fp dCBmb3IgQGJvIHRvIGJlY29tZSB1bnJlc2VydmVkLCBhbmQKPiAtICogdGhlbiByZXJ1biB0aGUg dmFsaWRhdGlvbiB3aXRoIHRoZSBzYW1lIHZhbGlkYXRpb24gc2VxdWVuY2UuIFRoaXMgcHJvY2Vk dXJlCj4gLSAqIHdpbGwgYWx3YXlzIGd1YXJhbnRlZSB0aGF0IHRoZSBwcm9jZXNzIHdpdGggdGhl IGxvd2VzdCB2YWxpZGF0aW9uIHNlcXVlbmNlCj4gLSAqIHdpbGwgZXZlbnR1YWxseSBzdWNjZWVk LCBwcmV2ZW50aW5nIGJvdGggZGVhZGxvY2tzIGFuZCBzdGFydmF0aW9uLgo+IC0gKgo+IC0gKiBS ZXR1cm5zOgo+IC0gKiAtRURFQURMSzogVGhlIHJlc2VydmF0aW9uIG1heSBjYXVzZSBhIGRlYWRs b2NrLgo+IC0gKiBSZWxlYXNlIGFsbCBidWZmZXIgcmVzZXJ2YXRpb25zLCB3YWl0IGZvciBAYm8g dG8gYmVjb21lIHVucmVzZXJ2ZWQgYW5kCj4gLSAqIHRyeSBhZ2Fpbi4gKG9ubHkgaWYgdXNlX3Nl cXVlbmNlID09IDEpLgo+IC0gKiAtRVJFU1RBUlRTWVM6IEEgd2FpdCBmb3IgdGhlIGJ1ZmZlciB0 byBiZWNvbWUgdW5yZXNlcnZlZCB3YXMgaW50ZXJydXB0ZWQgYnkKPiAtICogYSBzaWduYWwuIFJl bGVhc2UgYWxsIGJ1ZmZlciByZXNlcnZhdGlvbnMgYW5kIHJldHVybiB0byB1c2VyLXNwYWNlLgo+ IC0gKiAtRUJVU1k6IFRoZSBmdW5jdGlvbiBuZWVkZWQgdG8gc2xlZXAsIGJ1dCBAbm9fd2FpdCB3 YXMgdHJ1ZQo+IC0gKiAtRUFMUkVBRFk6IEJvIGFscmVhZHkgcmVzZXJ2ZWQgdXNpbmcgQHRpY2tl dC4gVGhpcyBlcnJvciBjb2RlIHdpbGwgb25seQo+IC0gKiBiZSByZXR1cm5lZCBpZiBAdXNlX3Rp Y2tldCBpcyBzZXQgdG8gdHJ1ZS4KPiAtICovCj4gLXN0YXRpYyBpbmxpbmUgaW50IHR0bV9ib19y ZXNlcnZlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4gLQkJCQkgYm9vbCBpbnRlcnJ1 cHRpYmxlLCBib29sIG5vX3dhaXQsCj4gLQkJCQkgc3RydWN0IHd3X2FjcXVpcmVfY3R4ICp0aWNr ZXQpCj4gLXsKPiAtCVdBUk5fT04oIWtyZWZfcmVhZCgmYm8tPmtyZWYpKTsKPiAtCj4gLQlyZXR1 cm4gX190dG1fYm9fcmVzZXJ2ZShibywgaW50ZXJydXB0aWJsZSwgbm9fd2FpdCwgdGlja2V0KTsK PiAtfQo+IC0KPiAgIC8qKgo+ICAgICogdHRtX2JvX3Jlc2VydmVfc2xvd3BhdGg6Cj4gICAgKiBA Ym86IEEgcG9pbnRlciB0byBhIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdC4KPiBAQCAtNjk5LDIw ICs2NDcsMTUgQEAgc3RhdGljIGlubGluZSBpbnQgdHRtX2JvX3Jlc2VydmVfc2xvd3BhdGgoc3Ry dWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiAgIAkJCQkJICBib29sIGludGVycnVwdGlibGUs Cj4gICAJCQkJCSAgc3RydWN0IHd3X2FjcXVpcmVfY3R4ICp0aWNrZXQpCj4gICB7Cj4gLQlpbnQg cmV0ID0gMDsKPiAtCj4gLQlXQVJOX09OKCFrcmVmX3JlYWQoJmJvLT5rcmVmKSk7Cj4gLQo+IC0J aWYgKGludGVycnVwdGlibGUpCj4gLQkJcmV0ID0gZG1hX3Jlc3ZfbG9ja19zbG93X2ludGVycnVw dGlibGUoYm8tPmJhc2UucmVzdiwKPiAtCQkJCQkJCQkgdGlja2V0KTsKPiAtCWVsc2UKPiAtCQlk bWFfcmVzdl9sb2NrX3Nsb3coYm8tPmJhc2UucmVzdiwgdGlja2V0KTsKPiAtCj4gLQlpZiAocmV0 ID09IC1FSU5UUikKPiAtCQlyZXQgPSAtRVJFU1RBUlRTWVM7Cj4gLQo+IC0JcmV0dXJuIHJldDsK PiArCWlmIChpbnRlcnJ1cHRpYmxlKSB7Cj4gKwkJaW50IHJldCA9IGRtYV9yZXN2X2xvY2tfc2xv d19pbnRlcnJ1cHRpYmxlKGJvLT5iYXNlLnJlc3YsCj4gKwkJCQkJCQkgICB0aWNrZXQpOwo+ICsJ CWlmIChyZXQgPT0gLUVJTlRSKQo+ICsJCQlyZXQgPSAtRVJFU1RBUlRTWVM7Cj4gKwkJcmV0dXJu IHJldDsKPiArCX0KPiArCWRtYV9yZXN2X2xvY2tfc2xvdyhiby0+YmFzZS5yZXN2LCB0aWNrZXQp Owo+ICsJcmV0dXJuIDA7Cj4gICB9Cj4gICAKPiAgIC8qKgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==