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.0 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, 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 9DD7DC433ED for ; Fri, 30 Apr 2021 13:50:58 +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 405E461462 for ; Fri, 30 Apr 2021 13:50:58 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 405E461462 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=amd-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B32896F528; Fri, 30 Apr 2021 13:50:57 +0000 (UTC) Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com [IPv6:2a00:1450:4864:20::635]) by gabe.freedesktop.org (Postfix) with ESMTPS id CB9156F528 for ; Fri, 30 Apr 2021 13:50:56 +0000 (UTC) Received: by mail-ej1-x635.google.com with SMTP id u3so26671619eja.12 for ; Fri, 30 Apr 2021 06:50:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding:content-language; bh=5as9kx2tbGf/kIcSa9FhFReJTaEZrShRQeq9K45Esaw=; b=JARVJLYrfbxw3ESqdJq2pmhKB8fua2y/GKtFDWuY0cl3itMGub9HHYeDSL1l7SzHUt EjLnFByqRgvZDZDTYnMiLfVCl2FGvmW7kfzE07n767AyCEHLJMTxhCq3zv++ku7vG+xC oMi76LmNz8hhM5ChQFvdP+rnKpy4mrfnYCspcvPIPAF/mCYub7UzCIAgTe/kGzY+228I /97SUIwDAmOB1I6uk4tJ1WKn/cO6r6xPThohrFPDtlCYBt2ne8WQ2BPC1S1hG+QTpoXU ivs37XaWDsHKwzE8nEsooLb2e9AgN1d/P4Q3uXBy6EkDszzZ5Sv/6IH5/v9tAp7o/J16 ufRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=5as9kx2tbGf/kIcSa9FhFReJTaEZrShRQeq9K45Esaw=; b=iyNaBquDBK7gqclebKQNqD/2OS6WOCF5gfaZpTvc2LMFMRYPOyIpPg8OjupbqjEiGd JB/m06FlywvvXq2I/ukxo881a8sB+RdHf67gwjyQHINoo9ZDXRbS+sYq+3HsmErhzIqS BFFATPC19jerp862dVhnJiYKq5zsMaqyGgZg71FaCMfvfA7hICMRM1p3cPuWlOMaY0nf REZB5vUu9TRVbHOScG3O/rAz5Fru2z6cLFks9SdgD/DRuvHb+MRl93jcmK4BzqhCv520 oxOn0Nb/5sk7PWxTeSaQ1Slq0yrp3OYnN7aBiq6TAA8Wn3WoX5ozjKVgJgShyFoJPWqj k+JQ== X-Gm-Message-State: AOAM533eDyoQzIAEhOoRUiXotKVBmYP6Sbv2RbbxEpVi+n2KqmW5h+R8 VjonFUSx+s3t8BhZpq/9fK8HAq/bqmc= X-Google-Smtp-Source: ABdhPJxEOvmbhWZUYo+4+pwSpAEL2ZMGaoVKWRSsQ+CLmoq9TIh5S9OMr4H7KiUaq70k6/M9k0zL6w== X-Received: by 2002:a17:906:608a:: with SMTP id t10mr4570890ejj.374.1619790655379; Fri, 30 Apr 2021 06:50:55 -0700 (PDT) Received: from ?IPv6:2a02:908:1252:fb60:aa4a:1229:bd1a:d432? ([2a02:908:1252:fb60:aa4a:1229:bd1a:d432]) by smtp.gmail.com with ESMTPSA id m9sm2068361ejj.53.2021.04.30.06.50.54 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 30 Apr 2021 06:50:55 -0700 (PDT) Subject: Re: [PATCH 1/5] drm/amdgpu: re-apply "use the new cursor in the VM code" v2 To: Felix Kuehling , amd-gfx@lists.freedesktop.org References: <20210427105410.2700-1-christian.koenig@amd.com> <63266df9-ba17-c53d-53b9-87331415f057@amd.com> <022dc479-53ad-eecb-1ac0-4156dadbd18d@gmail.com> <2e7a1de7-6cf3-e3eb-7575-c6afe68828e3@amd.com> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: <111abfa3-eaa3-e171-40c9-ffb6727660c2@gmail.com> Date: Fri, 30 Apr 2021 15:50:54 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 MIME-Version: 1.0 In-Reply-To: <2e7a1de7-6cf3-e3eb-7575-c6afe68828e3@amd.com> Content-Language: en-US X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" CgpBbSAzMC4wNC4yMSB1bSAxNTo0NSBzY2hyaWViIEZlbGl4IEt1ZWhsaW5nOgo+IEFtIDIwMjEt MDQtMzAgdW0gNDo1NCBhLm0uIHNjaHJpZWIgQ2hyaXN0aWFuIEvDtm5pZzoKPj4KPj4gQW0gMzAu MDQuMjEgdW0gMTA6MzIgc2NocmllYiBGZWxpeCBLdWVobGluZzoKPj4+IEFtIDIwMjEtMDQtMjcg dW0gNjo1NCBhLm0uIHNjaHJpZWIgQ2hyaXN0aWFuIEvDtm5pZzoKPj4+PiBOb3cgdGhhdCB3ZSBm b3VuZCB0aGUgdW5kZXJseWluZyBwcm9ibGVtIHdlIGNhbiByZS1hcHBseSB0aGlzIHBhdGNoLgo+ Pj4+Cj4+Pj4gVGhpcyByZXZlcnRzIGNvbW1pdCA4NjdmZWU3Zjg4MjFmZjQyZTczMDgwODhjZjBj MzQ1MGFjNDljMTdjLgo+Pj4+Cj4+Pj4gdjI6IHJlYmFzZSBvbiBLRkQgY2hhbmdlcwo+Pj4+Cj4+ Pj4gU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQu Y29tPgo+Pj4gQWNrZWQtYnk6IEZlbGl4IEt1ZWhsaW5nIDxGZWxpeC5LdWVobGluZ0BhbWQuY29t Pgo+PiBUaGFua3MsIGp1c3QgZm9yIHRoaXMgcGF0Y2ggb3IgdGhlIHNlcmllcz8KPiBJIG1lYW50 IGl0IGZvciB0aGUgcGF0Y2guIEkgY291bGQgcHJvYmFibHkgZXh0ZW5kIGl0IHRvIHRoZSBzZXJp ZXMuIEJ1dAo+IEknbSBhIGJpdCBjb25mdXNlZCBob3cgdGhlIHBhdGNoZXMgcmVsYXRlIHRvIGVh Y2ggb3RoZXIuIFRoZXJlIHNlZW1zIHRvCj4gYmUgYW4gaW1wbGljYXRpb24gdGhhdCBldmVyeXRo aW5nIGxlYWRzIHVwIHRvIGVuYWJsaW5nIHBhdGNoIDUsIGkuZS4KPiByZW1vdmluZyB1c2VycyBv ZiBtbV9ub2RlcyBzbyB0aGF0IHlvdSBjYW4gaW4gcGF0Y2ggNSBtYWtlIHRoZSBkYXRhCj4gc3Ry dWN0dXJlIGNvbnRhaW5pbmcgbW1fbm9kZXMgcHJpdmF0ZS4KPgo+IEJ1dCBpdCdzIG5vdCB0aGUg c2FtZSBkYXRhIHN0cnVjdHVyZS4gSSBkb24ndCB0aGluayBwYXRjaCA1IHJlYWxseQo+IGRlcGVu ZHMgb24gYW55IG9mIHRoZSBwcmV2aW91cyBwYXRjaGVzLCBiZWNhdXNlIGFsbCB0aGUgb3RoZXIg cGF0Y2hlcwo+IGRlYWwgd2l0aCB0dG1fcmVzb3VyY2UubW1fbm9kZXMgYW5kIHBhdGNoIDUgZGVh bHMgd2l0aAo+IGFtZGdwdV92cmFtX3Jlc2VydmF0aW9uLm1tX25vZGVzLgoKTm8sIHlvdSBhcmUg Y2xvc2UgYnV0IHN0aWxsIG1pc3VuZGVyc3Rvb2QgdGhlIGludGVudGlvbiBoZXJlIGEgYml0LgoK SSB3YW50IHRvIHN0b3AgdXNpbmcgZHJtX21tX25vZGUgZGlyZWN0bHkgaW4gdGhlIGFtZGdwdSBj b2RlIHNvIHRoYXQgd2UgCmFyZSBhYmxlIHRvIHN3aXRjaCB0aGUgVlJBTSBtYW5hZ2VtZW50IHRv IGEgYnVkZHkgYWxsb2NhdG9yIHNvb25lciBvciBsYXRlci4KCm1tX25vZGVzIGFuZCBhbWRncHVf dnJhbV9yZXNlcnZhdGlvbi5tbV9ub2RlcyBhcmUgYm90aCBvZiB0aGF0IHR5cGUuCgpSZWdhcmRz LApDaHJpc3RpYW4uCgo+Cj4gUmVnYXJkcywKPiAgwqAgRmVsaXgKPgo+Cj4+IENocmlzdGlhbi4K Pj4KPj4+Cj4+Pj4gLS0tCj4+Pj4gIMKgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV92bS5jIHwgNTUKPj4+PiArKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQo+Pj4+ICDCoCBkcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uaCB8wqAgMiArLQo+Pj4+ICDCoCBkcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfc3ZtLmPCoMKgIHzCoCAzICstCj4+Pj4gIMKgIDMg ZmlsZXMgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRpb25zKC0pCj4+Pj4KPj4+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKPj4+ PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jCj4+Pj4gaW5kZXggZGFl NTE5OTJjNjA3Li5mYTQzZDMzMmE5NzkgMTAwNjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKPj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfdm0uYwo+Pj4+IEBAIC0zNyw2ICszNyw3IEBACj4+Pj4gIMKgICNpbmNsdWRl ICJhbWRncHVfZ21jLmgiCj4+Pj4gIMKgICNpbmNsdWRlICJhbWRncHVfeGdtaS5oIgo+Pj4+ICDC oCAjaW5jbHVkZSAiYW1kZ3B1X2RtYV9idWYuaCIKPj4+PiArI2luY2x1ZGUgImFtZGdwdV9yZXNf Y3Vyc29yLmgiCj4+Pj4gIMKgICNpbmNsdWRlICJrZmRfc3ZtLmgiCj4+Pj4gIMKgIMKgIC8qKgo+ Pj4+IEBAIC0xNjA2LDcgKzE2MDcsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV92bV91cGRhdGVfcHRl cyhzdHJ1Y3QKPj4+PiBhbWRncHVfdm1fdXBkYXRlX3BhcmFtcyAqcGFyYW1zLAo+Pj4+ICDCoMKg ICogQGxhc3Q6IGxhc3QgbWFwcGVkIGVudHJ5Cj4+Pj4gIMKgwqAgKiBAZmxhZ3M6IGZsYWdzIGZv ciB0aGUgZW50cmllcwo+Pj4+ICDCoMKgICogQG9mZnNldDogb2Zmc2V0IGludG8gbm9kZXMgYW5k IHBhZ2VzX2FkZHIKPj4+PiAtICogQG5vZGVzOiBhcnJheSBvZiBkcm1fbW1fbm9kZXMgd2l0aCB0 aGUgTUMgYWRkcmVzc2VzCj4+Pj4gKyAqIEByZXM6IHR0bV9yZXNvdXJjZSB0byBtYXAKPj4+PiAg wqDCoCAqIEBwYWdlc19hZGRyOiBETUEgYWRkcmVzc2VzIHRvIHVzZSBmb3IgbWFwcGluZwo+Pj4+ ICDCoMKgICogQGZlbmNlOiBvcHRpb25hbCByZXN1bHRpbmcgZmVuY2UKPj4+PiAgwqDCoCAqCj4+ Pj4gQEAgLTE2MjEsMTMgKzE2MjIsMTMgQEAgaW50IGFtZGdwdV92bV9ib191cGRhdGVfbWFwcGlu ZyhzdHJ1Y3QKPj4+PiBhbWRncHVfZGV2aWNlICphZGV2LAo+Pj4+ICDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIGJvb2wgdW5sb2NrZWQsIHN0cnVjdCBkbWFfcmVzdiAqcmVzdiwK Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1aW50NjRfdCBzdGFydCwg dWludDY0X3QgbGFzdCwKPj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1 aW50NjRfdCBmbGFncywgdWludDY0X3Qgb2Zmc2V0LAo+Pj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgc3RydWN0IGRybV9tbV9ub2RlICpub2RlcywKPj4+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCB0dG1fcmVzb3VyY2UgKnJlcywKPj4+PiAgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkbWFfYWRkcl90ICpwYWdlc19hZGRyLAo+Pj4+ ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBkbWFfZmVuY2UgKipm ZW5jZSkKPj4+PiAgwqAgewo+Pj4+ICDCoMKgwqDCoMKgIHN0cnVjdCBhbWRncHVfdm1fdXBkYXRl X3BhcmFtcyBwYXJhbXM7Cj4+Pj4gK8KgwqDCoCBzdHJ1Y3QgYW1kZ3B1X3Jlc19jdXJzb3IgY3Vy c29yOwo+Pj4+ICDCoMKgwqDCoMKgIGVudW0gYW1kZ3B1X3N5bmNfbW9kZSBzeW5jX21vZGU7Cj4+ Pj4gLcKgwqDCoCB1aW50NjRfdCBwZm47Cj4+Pj4gIMKgwqDCoMKgwqAgaW50IHI7Cj4+Pj4gIMKg IMKgwqDCoMKgwqAgbWVtc2V0KCZwYXJhbXMsIDAsIHNpemVvZihwYXJhbXMpKTsKPj4+PiBAQCAt MTY0NSwxNCArMTY0Niw2IEBAIGludCBhbWRncHVfdm1fYm9fdXBkYXRlX21hcHBpbmcoc3RydWN0 Cj4+Pj4gYW1kZ3B1X2RldmljZSAqYWRldiwKPj4+PiAgwqDCoMKgwqDCoCBlbHNlCj4+Pj4gIMKg wqDCoMKgwqDCoMKgwqDCoCBzeW5jX21vZGUgPSBBTURHUFVfU1lOQ19FWFBMSUNJVDsKPj4+PiAg wqAgLcKgwqDCoCBwZm4gPSBvZmZzZXQgPj4gUEFHRV9TSElGVDsKPj4+PiAtwqDCoMKgIGlmIChu b2Rlcykgewo+Pj4+IC3CoMKgwqDCoMKgwqDCoCB3aGlsZSAocGZuID49IG5vZGVzLT5zaXplKSB7 Cj4+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcGZuIC09IG5vZGVzLT5zaXplOwo+Pj4+IC3C oMKgwqDCoMKgwqDCoMKgwqDCoMKgICsrbm9kZXM7Cj4+Pj4gLcKgwqDCoMKgwqDCoMKgIH0KPj4+ PiAtwqDCoMKgIH0KPj4+PiAtCj4+Pj4gIMKgwqDCoMKgwqAgYW1kZ3B1X3ZtX2V2aWN0aW9uX2xv Y2sodm0pOwo+Pj4+ICDCoMKgwqDCoMKgIGlmICh2bS0+ZXZpY3RpbmcpIHsKPj4+PiAgwqDCoMKg wqDCoMKgwqDCoMKgIHIgPSAtRUJVU1k7Cj4+Pj4gQEAgLTE2NzEsMjMgKzE2NjQsMTcgQEAgaW50 IGFtZGdwdV92bV9ib191cGRhdGVfbWFwcGluZyhzdHJ1Y3QKPj4+PiBhbWRncHVfZGV2aWNlICph ZGV2LAo+Pj4+ICDCoMKgwqDCoMKgIGlmIChyKQo+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqAgZ290 byBlcnJvcl91bmxvY2s7Cj4+Pj4gIMKgIC3CoMKgwqAgZG8gewo+Pj4+ICvCoMKgwqAgYW1kZ3B1 X3Jlc19maXJzdChyZXMsIG9mZnNldCwgKGxhc3QgLSBzdGFydCArIDEpICoKPj4+PiBBTURHUFVf R1BVX1BBR0VfU0laRSwKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICZjdXJzb3IpOwo+ Pj4+ICvCoMKgwqAgd2hpbGUgKGN1cnNvci5yZW1haW5pbmcpIHsKPj4+PiAgwqDCoMKgwqDCoMKg wqDCoMKgIHVpbnQ2NF90IHRtcCwgbnVtX2VudHJpZXMsIGFkZHI7Cj4+Pj4gIMKgIC0KPj4+PiAt wqDCoMKgwqDCoMKgwqAgbnVtX2VudHJpZXMgPSBsYXN0IC0gc3RhcnQgKyAxOwo+Pj4+IC3CoMKg wqDCoMKgwqDCoCBpZiAobm9kZXMpIHsKPj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhZGRy ID0gbm9kZXMtPnN0YXJ0IDw8IFBBR0VfU0hJRlQ7Cj4+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgbnVtX2VudHJpZXMgPSBtaW4oKG5vZGVzLT5zaXplIC0gcGZuKSAqCj4+Pj4gLcKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBBTURHUFVfR1BVX1BBR0VTX0lOX0NQVV9QQUdFLCBudW1f ZW50cmllcyk7Cj4+Pj4gLcKgwqDCoMKgwqDCoMKgIH0gZWxzZSB7Cj4+Pj4gLcKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgYWRkciA9IDA7Cj4+Pj4gLcKgwqDCoMKgwqDCoMKgIH0KPj4+PiAtCj4+Pj4g K8KgwqDCoMKgwqDCoMKgIG51bV9lbnRyaWVzID0gY3Vyc29yLnNpemUgPj4gQU1ER1BVX0dQVV9Q QUdFX1NISUZUOwo+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHBhZ2VzX2FkZHIpIHsKPj4+ PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYm9vbCBjb250aWd1b3VzID0gdHJ1ZTsKPj4+ PiAgwqAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKG51bV9lbnRyaWVzID4gQU1ER1BV X0dQVV9QQUdFU19JTl9DUFVfUEFHRSkgewo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgdWludDY0X3QgcGZuID0gY3Vyc29yLnN0YXJ0ID4+IFBBR0VfU0hJRlQ7Cj4+Pj4gIMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdWludDY0X3QgY291bnQ7Cj4+Pj4gIMKg IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29udGlndW91cyA9IHBhZ2VzX2Fk ZHJbcGZuICsgMV0gPT0KPj4+PiBAQCAtMTcwNywxNiArMTY5NCwxOCBAQCBpbnQgYW1kZ3B1X3Zt X2JvX3VwZGF0ZV9tYXBwaW5nKHN0cnVjdAo+Pj4+IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4+Pj4g IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4+PiAgwqAgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgaWYgKCFjb250aWd1b3VzKSB7Cj4+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBhZGRyID0gcGZuIDw8IFBBR0VfU0hJRlQ7Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBhZGRyID0gY3Vyc29yLnN0YXJ0Owo+Pj4+ICDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHBhcmFtcy5wYWdlc19hZGRyID0gcGFnZXNfYWRkcjsKPj4+PiAg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfSBlbHNlIHsKPj4+PiAtwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGFkZHIgPSBwYWdlc19hZGRyW3Bmbl07Cj4+Pj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBhZGRyID0gcGFnZXNfYWRkcltjdXJzb3Iuc3RhcnQgPj4gUEFH RV9TSElGVF07Cj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcGFyYW1z LnBhZ2VzX2FkZHIgPSBOVUxMOwo+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4+ Pj4gIMKgIMKgwqDCoMKgwqDCoMKgwqDCoCB9IGVsc2UgaWYgKGZsYWdzICYgKEFNREdQVV9QVEVf VkFMSUQgfCBBTURHUFVfUFRFX1BSVCkpIHsKPj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBh ZGRyICs9IGJvX2FkZXYtPnZtX21hbmFnZXIudnJhbV9iYXNlX29mZnNldDsKPj4+PiAtwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBhZGRyICs9IHBmbiA8PCBQQUdFX1NISUZUOwo+Pj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGFkZHIgPSBib19hZGV2LT52bV9tYW5hZ2VyLnZyYW1fYmFzZV9vZmZz ZXQgKwo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY3Vyc29yLnN0YXJ0Owo+ Pj4+ICvCoMKgwqDCoMKgwqDCoCB9IGVsc2Ugewo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGFkZHIgPSAwOwo+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+Pj4+ICDCoCDCoMKgwqDCoMKg wqDCoMKgwqAgdG1wID0gc3RhcnQgKyBudW1fZW50cmllczsKPj4+PiBAQCAtMTcyNCwxNCArMTcx Myw5IEBAIGludCBhbWRncHVfdm1fYm9fdXBkYXRlX21hcHBpbmcoc3RydWN0Cj4+Pj4gYW1kZ3B1 X2RldmljZSAqYWRldiwKPj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChyKQo+Pj4+ICDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIGVycm9yX3VubG9jazsKPj4+PiAgwqAgLcKgwqDC oMKgwqDCoMKgIHBmbiArPSBudW1fZW50cmllcyAvIEFNREdQVV9HUFVfUEFHRVNfSU5fQ1BVX1BB R0U7Cj4+Pj4gLcKgwqDCoMKgwqDCoMKgIGlmIChub2RlcyAmJiBub2Rlcy0+c2l6ZSA9PSBwZm4p IHsKPj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwZm4gPSAwOwo+Pj4+IC3CoMKgwqDCoMKg wqDCoMKgwqDCoMKgICsrbm9kZXM7Cj4+Pj4gLcKgwqDCoMKgwqDCoMKgIH0KPj4+PiArwqDCoMKg wqDCoMKgwqAgYW1kZ3B1X3Jlc19uZXh0KCZjdXJzb3IsIG51bV9lbnRyaWVzICogQU1ER1BVX0dQ VV9QQUdFX1NJWkUpOwo+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqAgc3RhcnQgPSB0bXA7Cj4+Pj4g LQo+Pj4+IC3CoMKgwqAgfSB3aGlsZSAodW5saWtlbHkoc3RhcnQgIT0gbGFzdCArIDEpKTsKPj4+ PiArwqDCoMKgIH07Cj4+Pj4gIMKgIMKgwqDCoMKgwqAgciA9IHZtLT51cGRhdGVfZnVuY3MtPmNv bW1pdCgmcGFyYW1zLCBmZW5jZSk7Cj4+Pj4gIMKgIEBAIC0xNzYwLDcgKzE3NDQsNiBAQCBpbnQg YW1kZ3B1X3ZtX2JvX3VwZGF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZQo+Pj4+ICphZGV2LCBzdHJ1 Y3QgYW1kZ3B1X2JvX3ZhICpib192YSwKPj4+PiAgwqDCoMKgwqDCoCBzdHJ1Y3QgYW1kZ3B1X2Jv X3ZhX21hcHBpbmcgKm1hcHBpbmc7Cj4+Pj4gIMKgwqDCoMKgwqAgZG1hX2FkZHJfdCAqcGFnZXNf YWRkciA9IE5VTEw7Cj4+Pj4gIMKgwqDCoMKgwqAgc3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtOwo+ Pj4+IC3CoMKgwqAgc3RydWN0IGRybV9tbV9ub2RlICpub2RlczsKPj4+PiAgwqDCoMKgwqDCoCBz dHJ1Y3QgZG1hX2ZlbmNlICoqbGFzdF91cGRhdGU7Cj4+Pj4gIMKgwqDCoMKgwqAgc3RydWN0IGRt YV9yZXN2ICpyZXN2Owo+Pj4+ICDCoMKgwqDCoMKgIHVpbnQ2NF90IGZsYWdzOwo+Pj4+IEBAIC0x NzY5LDcgKzE3NTIsNiBAQCBpbnQgYW1kZ3B1X3ZtX2JvX3VwZGF0ZShzdHJ1Y3QgYW1kZ3B1X2Rl dmljZQo+Pj4+ICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X2JvX3ZhICpib192YSwKPj4+PiAgwqAgwqDC oMKgwqDCoCBpZiAoY2xlYXIgfHwgIWJvKSB7Cj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoCBtZW0g PSBOVUxMOwo+Pj4+IC3CoMKgwqDCoMKgwqDCoCBub2RlcyA9IE5VTEw7Cj4+Pj4gIMKgwqDCoMKg wqDCoMKgwqDCoCByZXN2ID0gdm0tPnJvb3QuYmFzZS5iby0+dGJvLmJhc2UucmVzdjsKPj4+PiAg wqDCoMKgwqDCoCB9IGVsc2Ugewo+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGRybV9n ZW1fb2JqZWN0ICpvYmogPSAmYm8tPnRiby5iYXNlOwo+Pj4+IEBAIC0xNzg0LDcgKzE3NjYsNiBA QCBpbnQgYW1kZ3B1X3ZtX2JvX3VwZGF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZQo+Pj4+ICphZGV2 LCBzdHJ1Y3QgYW1kZ3B1X2JvX3ZhICpib192YSwKPj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBibyA9IGdlbV90b19hbWRncHVfYm8oZ29iaik7Cj4+Pj4gIMKgwqDCoMKg wqDCoMKgwqDCoCB9Cj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoCBtZW0gPSAmYm8tPnRiby5tZW07 Cj4+Pj4gLcKgwqDCoMKgwqDCoMKgIG5vZGVzID0gbWVtLT5tbV9ub2RlOwo+Pj4+ICDCoMKgwqDC oMKgwqDCoMKgwqAgaWYgKG1lbS0+bWVtX3R5cGUgPT0gVFRNX1BMX1RUKQo+Pj4+ICDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBwYWdlc19hZGRyID0gYm8tPnRiby50dG0tPmRtYV9hZGRyZXNz Owo+Pj4+ICDCoMKgwqDCoMKgIH0KPj4+PiBAQCAtMTgzMyw3ICsxODE0LDcgQEAgaW50IGFtZGdw dV92bV9ib191cGRhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UKPj4+PiAqYWRldiwgc3RydWN0IGFt ZGdwdV9ib192YSAqYm9fdmEsCj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoCByID0gYW1kZ3B1X3Zt X2JvX3VwZGF0ZV9tYXBwaW5nKGFkZXYsIGJvX2FkZXYsIHZtLCBmYWxzZSwKPj4+PiBmYWxzZSwK Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg cmVzdiwgbWFwcGluZy0+c3RhcnQsCj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1hcHBpbmctPmxhc3QsIHVwZGF0ZV9mbGFncywKPj4+PiAt wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtYXBwaW5nLT5v ZmZzZXQsIG5vZGVzLAo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIG1hcHBpbmctPm9mZnNldCwgbWVtLAo+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwYWdlc19hZGRyLCBsYXN0X3VwZGF0ZSk7 Cj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAocikKPj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgcmV0dXJuIHI7Cj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV92bS5oCj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfdm0uaAo+Pj4+IGluZGV4IGU1YTNmMThiZTJiNy4uMWFlNWVhOGRiNDk3IDEwMDY0NAo+Pj4+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5oCj4+Pj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmgKPj4+PiBAQCAtNDAyLDcgKzQw Miw3IEBAIGludCBhbWRncHVfdm1fYm9fdXBkYXRlX21hcHBpbmcoc3RydWN0Cj4+Pj4gYW1kZ3B1 X2RldmljZSAqYWRldiwKPj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBi b29sIHVubG9ja2VkLCBzdHJ1Y3QgZG1hX3Jlc3YgKnJlc3YsCj4+Pj4gIMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgdWludDY0X3Qgc3RhcnQsIHVpbnQ2NF90IGxhc3QsCj4+Pj4g IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdWludDY0X3QgZmxhZ3MsIHVpbnQ2 NF90IG9mZnNldCwKPj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBk cm1fbW1fbm9kZSAqbm9kZXMsCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBz dHJ1Y3QgdHRtX3Jlc291cmNlICpyZXMsCj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgZG1hX2FkZHJfdCAqcGFnZXNfYWRkciwKPj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2UpOwo+Pj4+ICDCoCBpbnQg YW1kZ3B1X3ZtX2JvX3VwZGF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPj4+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3N2bS5jCj4+Pj4gYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfc3ZtLmMKPj4+PiBpbmRleCBlNGNlOTdhYjZlMjYu LjBiMGU3NmUxNmRkYyAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtm ZC9rZmRfc3ZtLmMKPj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfc3Zt LmMKPj4+PiBAQCAtMTE1MSw4ICsxMTUxLDcgQEAgc3ZtX3JhbmdlX21hcF90b19ncHUoc3RydWN0 IGFtZGdwdV9kZXZpY2UKPj4+PiAqYWRldiwgc3RydWN0IGFtZGdwdV92bSAqdm0sCj4+Pj4gIMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwcmFuZ2UtPm1hcHBpbmcu c3RhcnQsCj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBw cmFuZ2UtPm1hcHBpbmcubGFzdCwgcHRlX2ZsYWdzLAo+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcHJhbmdlLT5tYXBwaW5nLm9mZnNldCwKPj4+PiAtwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcHJhbmdlLT50dG1fcmVzID8KPj4+ PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwcmFuZ2Ut PnR0bV9yZXMtPm1tX25vZGUgOiBOVUxMLAo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBwcmFuZ2UtPnR0bV9yZXMsCj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkbWFfYWRkciwgJnZtLT5sYXN0X3VwZGF0ZSk7Cj4+Pj4g IMKgwqDCoMKgwqAgaWYgKHIpIHsKPj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgIHByX2RlYnVnKCJm YWlsZWQgJWQgdG8gbWFwIHRvIGdwdSAweCVseFxuIiwgciwKPj4+PiBwcmFuZ2UtPnN0YXJ0KTsK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZngg bWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=