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,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 E39AEC433E6 for ; Tue, 16 Mar 2021 12:05:55 +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 20CE26504E for ; Tue, 16 Mar 2021 12:05:55 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 20CE26504E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch 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 0F64D6E3B2; Tue, 16 Mar 2021 12:05:54 +0000 (UTC) Received: from mail-oo1-xc32.google.com (mail-oo1-xc32.google.com [IPv6:2607:f8b0:4864:20::c32]) by gabe.freedesktop.org (Postfix) with ESMTPS id 878356E3B2 for ; Tue, 16 Mar 2021 12:05:53 +0000 (UTC) Received: by mail-oo1-xc32.google.com with SMTP id i25-20020a4aa1190000b02901bbd9429832so3709986ool.0 for ; Tue, 16 Mar 2021 05:05:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=47ZfhDZmVuqq0+sXS611NwpvuQHCrJC/tA2SSWlKqco=; b=jvXYt1pdD83zoeFSL+vss8I5iD9bF7kZRjI06cSmVvVNLAAYscTLBMXhCYfRUmg5CV Z/3qcGLDHuQjWBp0MnG1ZBjzZm3SSXmCMSsgQzO+eSWaJss409n/dE9wL/w1mIbvZnID ATVVu84KSClQWKaA3zGteMWuRYs6EUsJRDAPM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=47ZfhDZmVuqq0+sXS611NwpvuQHCrJC/tA2SSWlKqco=; b=hR1WgRxJHmJagA7PNSxsaGOedIb5qWyddnil22Qo3dDo5zYoPTjP0pjlLn2rGqUz5w qlnpMGE2YgxJ5QDMhychMdY4E+agE7jWzttlOVHKYXMBQ4pJ1nOPIze7Wpfxm6MkU3ze rJVvttSPkw+DsHhUmvM+3zS6Q+svQNMHQtxGa8fayBFSKSxNj44IRBGjt1HrIKrTYEZx +zuK2X9IuhBzjNSU9YbJ/MBGdI6JNYahcEAKLy1TD9oCCWSd3woYFP+dVCYjdfgUk+6v bdhxAWUbqEYMdOCyARp9HjmyFXhP1oXrdHypnQjZEObxWlbd/T2oXw0dfJjH09nlp55L Co+Q== X-Gm-Message-State: AOAM5318Y9ZS1Bfcr18fplqFdoZt1Qc3V1RWFtjdyFruwzDilzwGe4ce Rbfo9+VMdc+ETy/xEz+P004vs3f4rByZ8bIArROKQg== X-Google-Smtp-Source: ABdhPJyL1A0Jp+2QhZ5MX40TY3iKLhsDRZ1dds+I5Ie1Rr1O4hXrmowGvkbujq4mX6pVhGuGHJ17yMg0+2hjM7A23sM= X-Received: by 2002:a4a:a709:: with SMTP id g9mr3496837oom.89.1615896352470; Tue, 16 Mar 2021 05:05:52 -0700 (PDT) MIME-Version: 1.0 References: <20210315160422.152528-1-christian.koenig@amd.com> <20210315160422.152528-3-christian.koenig@amd.com> In-Reply-To: From: Daniel Vetter Date: Tue, 16 Mar 2021 13:05:41 +0100 Message-ID: Subject: Re: [PATCH 3/3] drm/ttm: switch to per device LRU lock To: =?UTF-8?Q?Christian_K=C3=B6nig?= 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: Huang Rui , dri-devel Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gVHVlLCBNYXIgMTYsIDIwMjEgYXQgMTowMyBQTSBDaHJpc3RpYW4gS8O2bmlnCjxja29lbmln LmxlaWNodHp1bWVya2VuQGdtYWlsLmNvbT4gd3JvdGU6Cj4KPiBBbSAxNi4wMy4yMSB1bSAxMDoz NSBzY2hyaWViIERhbmllbCBWZXR0ZXI6Cj4gPiBPbiBNb24sIE1hciAxNSwgMjAyMSBhdCAwNTow NDoyMlBNICswMTAwLCBDaHJpc3RpYW4gS8O2bmlnIHdyb3RlOgo+ID4+IEluc3RlYWQgb2YgaGF2 aW5nIGEgZ2xvYmFsIGxvY2suCj4gPj4KPiA+PiBTaWduZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gS8O2 bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Cj4gPiBJIGd1ZXNzIHBlciB6b25lIGxydSBs b2NrIGlzIGEgbG90IG1vcmUgd29yayBzaW5jZSB0aGVuIHdlIG5lZWQgdG8gaGFuZGxlCj4gPiBv cmRlcmluZyBhbmQgQUJCQSBkZWFkbG9ja3M/IHMvem9uZS9tZW0gcmVnaW9uLyBJIHRoaW5rIGlz IHRoZSBwcm9wZXIgdHRtCj4gPiBsaW5nby4KPgo+IE1ha2luZyB0aGUgTFJVIHBlciByZXNvdXJj ZSBtYW5hZ2VyIGlzIHRoZSBsb25nIHRlcm0gZ29hbCwgeWVzLgo+Cj4gTXkga2V5IGlkZWEgc28g ZmFyIGlzIHRoYXQgd2UgbWFrZSBiby0+bWVtIGEgcG9pbnRlciBhbmQgdGhlbiBtb3ZlIHRoZQo+ IExSVSBoYW5kbGluZyBpbnRvIHRoZSByZXNvdXJjZSBvYmplY3QgaW5zdGVhZCBvZiB0aGUgQk8u Cj4KPiBUaGUgcmVzb3VyY2Ugb2JqZWN0IHRoZW4ganVzdCByZWZlcmVuY2VzIHRoZSBCTyBhbmQg c28gdGhhdCB3ZSBjYW4KPiBmaWd1cmUgb3V0IHdoaWNoIEJPIHRvIGV2aWN0IG9yIHdoaWNoIGZl bmNlIHRvIHdhaXQgZm9yIHRvIGZyZWUgdXAgYQo+IHJlc291cmNlLgoKSG0geWVhaCB0aGF0IGNv dWxkIHdvcmsgb3V0IGZhaXJseSBuaWNlbHkuIEJvdGggZnJvbSBsb2NraW5nIGJ1dCBhbHNvCnJl ZmNvdW50aW5nIHBvdi4gQW5kIG1heWJlIHdlIGNvdWxkIHRoZW4gdXNlIGVudGlyZWx5IGZyZWUt c3RhbmRpbmcKbWVtIG9iamVjdHMgaW5zdGVhZCBvZiBnaG9zdCBvYmplY3RzPyBTaW5jZSB0aGF0 J3MgYSBwYXJ0IG9mIHR0bSBJCmRvbid0IGdyb2sgYW5kIGl0IGFsd2F5cyBsb29rcyBhIGJpdCBs aWtlIGEgaGFjayB0byBtZS4gU28gZm9yIHRoZXNlCmdob3N0IG1lbSBvYmplY3RzIHlvdSdkIG9u bHkgbmVlZCB0aGUgbHJ1ICsgZG1hX2ZlbmNlX3dhaXQgKGNhbiBncmFiIGEKZmVuY2UgcmVmIHVu ZGVyIHRoZSBscnUgYW5kIHRoZW4gZHJvcCBscnUgbG9jayBmb3IgdGhhdCkgZm9yIGV2aWN0aW9u LApubyBkbWFfcmVzdl9sb2NrLgotRGFuaWVsCj4KPiBSZWdhcmRzLAo+IENocmlzdGlhbi4KPgo+ ID4gLURhbmllbAo+ID4KPiA+PiAtLS0KPiA+PiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV92bS5jIHwgIDggKystLS0KPiA+PiAgIGRyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX3Jl bGVhc2UuYyAgICAgIHwgIDUgKy0tCj4gPj4gICBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5j ICAgICAgICAgICB8IDQ5ICsrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCj4gPj4gICBkcml2ZXJz L2dwdS9kcm0vdHRtL3R0bV9kZXZpY2UuYyAgICAgICB8IDEyICsrKy0tLS0KPiA+PiAgIGRyaXZl cnMvZ3B1L2RybS90dG0vdHRtX2V4ZWNidWZfdXRpbC5jIHwgIDggKystLS0KPiA+PiAgIGRyaXZl cnMvZ3B1L2RybS90dG0vdHRtX3Jlc291cmNlLmMgICAgIHwgIDkgKysrLS0KPiA+PiAgIGluY2x1 ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmggICAgICAgIHwgIDQgKy0tCj4gPj4gICBpbmNsdWRl L2RybS90dG0vdHRtX2RldmljZS5oICAgICAgICAgICB8ICA0ICstLQo+ID4+ICAgOCBmaWxlcyBj aGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCA1NiBkZWxldGlvbnMoLSkKPiA+Pgo+ID4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jCj4gPj4gaW5kZXggOWQxOTA3ODI0NmM4Li5h ZTE4YzBlMzIzNDcgMTAwNjQ0Cj4gPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X3ZtLmMKPiA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf dm0uYwo+ID4+IEBAIC02MzgsMTUgKzYzOCwxNSBAQCB2b2lkIGFtZGdwdV92bV9tb3ZlX3RvX2xy dV90YWlsKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+ID4+ICAgICAgc3RydWN0IGFtZGdw dV92bV9ib19iYXNlICpib19iYXNlOwo+ID4+Cj4gPj4gICAgICBpZiAodm0tPmJ1bGtfbW92ZWFi bGUpIHsKPiA+PiAtICAgICAgICAgICAgc3Bpbl9sb2NrKCZ0dG1fZ2xvYi5scnVfbG9jayk7Cj4g Pj4gKyAgICAgICAgICAgIHNwaW5fbG9jaygmYWRldi0+bW1hbi5iZGV2LmxydV9sb2NrKTsKPiA+ PiAgICAgICAgICAgICAgdHRtX2JvX2J1bGtfbW92ZV9scnVfdGFpbCgmdm0tPmxydV9idWxrX21v dmUpOwo+ID4+IC0gICAgICAgICAgICBzcGluX3VubG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+ ID4+ICsgICAgICAgICAgICBzcGluX3VubG9jaygmYWRldi0+bW1hbi5iZGV2LmxydV9sb2NrKTsK PiA+PiAgICAgICAgICAgICAgcmV0dXJuOwo+ID4+ICAgICAgfQo+ID4+Cj4gPj4gICAgICBtZW1z ZXQoJnZtLT5scnVfYnVsa19tb3ZlLCAwLCBzaXplb2Yodm0tPmxydV9idWxrX21vdmUpKTsKPiA+ Pgo+ID4+IC0gICAgc3Bpbl9sb2NrKCZ0dG1fZ2xvYi5scnVfbG9jayk7Cj4gPj4gKyAgICBzcGlu X2xvY2soJmFkZXYtPm1tYW4uYmRldi5scnVfbG9jayk7Cj4gPj4gICAgICBsaXN0X2Zvcl9lYWNo X2VudHJ5KGJvX2Jhc2UsICZ2bS0+aWRsZSwgdm1fc3RhdHVzKSB7Cj4gPj4gICAgICAgICAgICAg IHN0cnVjdCBhbWRncHVfYm8gKmJvID0gYm9fYmFzZS0+Ym87Cj4gPj4KPiA+PiBAQCAtNjYwLDcg KzY2MCw3IEBAIHZvaWQgYW1kZ3B1X3ZtX21vdmVfdG9fbHJ1X3RhaWwoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYsCj4gPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJmJvLT5zaGFkb3ctPnRiby5tZW0sCj4gPj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJnZtLT5scnVfYnVsa19tb3ZlKTsKPiA+PiAgICAgIH0KPiA+ PiAtICAgIHNwaW5fdW5sb2NrKCZ0dG1fZ2xvYi5scnVfbG9jayk7Cj4gPj4gKyAgICBzcGluX3Vu bG9jaygmYWRldi0+bW1hbi5iZGV2LmxydV9sb2NrKTsKPiA+Pgo+ID4+ICAgICAgdm0tPmJ1bGtf bW92ZWFibGUgPSB0cnVlOwo+ID4+ICAgfQo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vcXhsL3F4bF9yZWxlYXNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9yZWxlYXNlLmMK PiA+PiBpbmRleCBmNTg0NWM5NmQ0MTQuLmIxOWYyZjAwYjIxNSAxMDA2NDQKPiA+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9yZWxlYXNlLmMKPiA+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vcXhsL3F4bF9yZWxlYXNlLmMKPiA+PiBAQCAtNDI2LDE2ICs0MjYsMTMgQEAgdm9pZCBxeGxf cmVsZWFzZV9mZW5jZV9idWZmZXJfb2JqZWN0cyhzdHJ1Y3QgcXhsX3JlbGVhc2UgKnJlbGVhc2Up Cj4gPj4gICAgICAgICAgICAgICAgICAgICByZWxlYXNlLT5pZCB8IDB4ZjAwMDAwMDAsIHJlbGVh c2UtPmJhc2Uuc2Vxbm8pOwo+ID4+ICAgICAgdHJhY2VfZG1hX2ZlbmNlX2VtaXQoJnJlbGVhc2Ut PmJhc2UpOwo+ID4+Cj4gPj4gLSAgICBzcGluX2xvY2soJnR0bV9nbG9iLmxydV9sb2NrKTsKPiA+ PiAtCj4gPj4gICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KGVudHJ5LCAmcmVsZWFzZS0+Ym9zLCBo ZWFkKSB7Cj4gPj4gICAgICAgICAgICAgIGJvID0gZW50cnktPmJvOwo+ID4+Cj4gPj4gICAgICAg ICAgICAgIGRtYV9yZXN2X2FkZF9zaGFyZWRfZmVuY2UoYm8tPmJhc2UucmVzdiwgJnJlbGVhc2Ut PmJhc2UpOwo+ID4+IC0gICAgICAgICAgICB0dG1fYm9fbW92ZV90b19scnVfdGFpbChibywgJmJv LT5tZW0sIE5VTEwpOwo+ID4+ICsgICAgICAgICAgICB0dG1fYm9fbW92ZV90b19scnVfdGFpbF91 bmxvY2tlZChibyk7Cj4gPj4gICAgICAgICAgICAgIGRtYV9yZXN2X3VubG9jayhiby0+YmFzZS5y ZXN2KTsKPiA+PiAgICAgIH0KPiA+PiAtICAgIHNwaW5fdW5sb2NrKCZ0dG1fZ2xvYi5scnVfbG9j ayk7Cj4gPj4gICAgICB3d19hY3F1aXJlX2ZpbmkoJnJlbGVhc2UtPnRpY2tldCk7Cj4gPj4gICB9 Cj4gPj4KPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYyBiL2Ry aXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKPiA+PiBpbmRleCBhMWJlODhiZTM1N2IuLmE4MTAz Yzg3MThhMyAxMDA2NDQKPiA+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCj4g Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYwo+ID4+IEBAIC0yNDIsOSArMjQy LDkgQEAgc3RhdGljIGludCB0dG1fYm9faW5kaXZpZHVhbGl6ZV9yZXN2KHN0cnVjdCB0dG1fYnVm ZmVyX29iamVjdCAqYm8pCj4gPj4gICAgICAgICAgICAgICAqIHJlZmVyZW5jZSBpdCBhbnkgbW9y ZS4gVGhlIG9ubHkgdHJpY2t5IGNhc2UgaXMgdGhlIHRyeWxvY2sgb24KPiA+PiAgICAgICAgICAg ICAgICogdGhlIHJlc3Ygb2JqZWN0IHdoaWxlIGhvbGRpbmcgdGhlIGxydV9sb2NrLgo+ID4+ICAg ICAgICAgICAgICAgKi8KPiA+PiAtICAgICAgICAgICAgc3Bpbl9sb2NrKCZ0dG1fZ2xvYi5scnVf bG9jayk7Cj4gPj4gKyAgICAgICAgICAgIHNwaW5fbG9jaygmYm8tPmJkZXYtPmxydV9sb2NrKTsK PiA+PiAgICAgICAgICAgICAgYm8tPmJhc2UucmVzdiA9ICZiby0+YmFzZS5fcmVzdjsKPiA+PiAt ICAgICAgICAgICAgc3Bpbl91bmxvY2soJnR0bV9nbG9iLmxydV9sb2NrKTsKPiA+PiArICAgICAg ICAgICAgc3Bpbl91bmxvY2soJmJvLT5iZGV2LT5scnVfbG9jayk7Cj4gPj4gICAgICB9Cj4gPj4K PiA+PiAgICAgIHJldHVybiByOwo+ID4+IEBAIC0zMDMsNyArMzAzLDcgQEAgc3RhdGljIGludCB0 dG1fYm9fY2xlYW51cF9yZWZzKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4gPj4KPiA+ PiAgICAgICAgICAgICAgaWYgKHVubG9ja19yZXN2KQo+ID4+ICAgICAgICAgICAgICAgICAgICAg IGRtYV9yZXN2X3VubG9jayhiby0+YmFzZS5yZXN2KTsKPiA+PiAtICAgICAgICAgICAgc3Bpbl91 bmxvY2soJnR0bV9nbG9iLmxydV9sb2NrKTsKPiA+PiArICAgICAgICAgICAgc3Bpbl91bmxvY2so JmJvLT5iZGV2LT5scnVfbG9jayk7Cj4gPj4KPiA+PiAgICAgICAgICAgICAgbHJldCA9IGRtYV9y ZXN2X3dhaXRfdGltZW91dF9yY3UocmVzdiwgdHJ1ZSwgaW50ZXJydXB0aWJsZSwKPiA+PiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzAgKiBIWik7Cj4gPj4g QEAgLTMxMyw3ICszMTMsNyBAQCBzdGF0aWMgaW50IHR0bV9ib19jbGVhbnVwX3JlZnMoc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiA+PiAgICAgICAgICAgICAgZWxzZSBpZiAobHJldCA9 PSAwKQo+ID4+ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRUJVU1k7Cj4gPj4KPiA+PiAt ICAgICAgICAgICAgc3Bpbl9sb2NrKCZ0dG1fZ2xvYi5scnVfbG9jayk7Cj4gPj4gKyAgICAgICAg ICAgIHNwaW5fbG9jaygmYm8tPmJkZXYtPmxydV9sb2NrKTsKPiA+PiAgICAgICAgICAgICAgaWYg KHVubG9ja19yZXN2ICYmICFkbWFfcmVzdl90cnlsb2NrKGJvLT5iYXNlLnJlc3YpKSB7Cj4gPj4g ICAgICAgICAgICAgICAgICAgICAgLyoKPiA+PiAgICAgICAgICAgICAgICAgICAgICAgKiBXZSBy YWNlZCwgYW5kIGxvc3QsIHNvbWVvbmUgZWxzZSBob2xkcyB0aGUgcmVzZXJ2YXRpb24gbm93LAo+ ID4+IEBAIC0zMjMsNyArMzIzLDcgQEAgc3RhdGljIGludCB0dG1fYm9fY2xlYW51cF9yZWZzKHN0 cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4gPj4gICAgICAgICAgICAgICAgICAgICAgICog ZGVsYXllZCBkZXN0cnVjdGlvbiB3b3VsZCBzdWNjZWVkLCBzbyBqdXN0IHJldHVybiBzdWNjZXNz Cj4gPj4gICAgICAgICAgICAgICAgICAgICAgICogaGVyZS4KPiA+PiAgICAgICAgICAgICAgICAg ICAgICAgKi8KPiA+PiAtICAgICAgICAgICAgICAgICAgICBzcGluX3VubG9jaygmdHRtX2dsb2Iu bHJ1X2xvY2spOwo+ID4+ICsgICAgICAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZiby0+YmRl di0+bHJ1X2xvY2spOwo+ID4+ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwo+ID4+ICAg ICAgICAgICAgICB9Cj4gPj4gICAgICAgICAgICAgIHJldCA9IDA7Cj4gPj4gQEAgLTMzMiwxMyAr MzMyLDEzIEBAIHN0YXRpYyBpbnQgdHRtX2JvX2NsZWFudXBfcmVmcyhzdHJ1Y3QgdHRtX2J1ZmZl cl9vYmplY3QgKmJvLAo+ID4+ICAgICAgaWYgKHJldCB8fCB1bmxpa2VseShsaXN0X2VtcHR5KCZi by0+ZGRlc3Ryb3kpKSkgewo+ID4+ICAgICAgICAgICAgICBpZiAodW5sb2NrX3Jlc3YpCj4gPj4g ICAgICAgICAgICAgICAgICAgICAgZG1hX3Jlc3ZfdW5sb2NrKGJvLT5iYXNlLnJlc3YpOwo+ID4+ IC0gICAgICAgICAgICBzcGluX3VubG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+ID4+ICsgICAg ICAgICAgICBzcGluX3VubG9jaygmYm8tPmJkZXYtPmxydV9sb2NrKTsKPiA+PiAgICAgICAgICAg ICAgcmV0dXJuIHJldDsKPiA+PiAgICAgIH0KPiA+Pgo+ID4+ICAgICAgdHRtX2JvX2RlbF9mcm9t X2xydShibyk7Cj4gPj4gICAgICBsaXN0X2RlbF9pbml0KCZiby0+ZGRlc3Ryb3kpOwo+ID4+IC0g ICAgc3Bpbl91bmxvY2soJnR0bV9nbG9iLmxydV9sb2NrKTsKPiA+PiArICAgIHNwaW5fdW5sb2Nr KCZiby0+YmRldi0+bHJ1X2xvY2spOwo+ID4+ICAgICAgdHRtX2JvX2NsZWFudXBfbWVtdHlwZV91 c2UoYm8pOwo+ID4+Cj4gPj4gICAgICBpZiAodW5sb2NrX3Jlc3YpCj4gPj4gQEAgLTM1NSwxMyAr MzU1LDEyIEBAIHN0YXRpYyBpbnQgdHRtX2JvX2NsZWFudXBfcmVmcyhzdHJ1Y3QgdHRtX2J1ZmZl cl9vYmplY3QgKmJvLAo+ID4+ICAgICovCj4gPj4gICBib29sIHR0bV9ib19kZWxheWVkX2RlbGV0 ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwgYm9vbCByZW1vdmVfYWxsKQo+ID4+ICAgewo+ID4+ IC0gICAgc3RydWN0IHR0bV9nbG9iYWwgKmdsb2IgPSAmdHRtX2dsb2I7Cj4gPj4gICAgICBzdHJ1 Y3QgbGlzdF9oZWFkIHJlbW92ZWQ7Cj4gPj4gICAgICBib29sIGVtcHR5Owo+ID4+Cj4gPj4gICAg ICBJTklUX0xJU1RfSEVBRCgmcmVtb3ZlZCk7Cj4gPj4KPiA+PiAtICAgIHNwaW5fbG9jaygmZ2xv Yi0+bHJ1X2xvY2spOwo+ID4+ICsgICAgc3Bpbl9sb2NrKCZiZGV2LT5scnVfbG9jayk7Cj4gPj4g ICAgICB3aGlsZSAoIWxpc3RfZW1wdHkoJmJkZXYtPmRkZXN0cm95KSkgewo+ID4+ICAgICAgICAg ICAgICBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvOwo+ID4+Cj4gPj4gQEAgLTM3MiwyNCAr MzcxLDI0IEBAIGJvb2wgdHRtX2JvX2RlbGF5ZWRfZGVsZXRlKHN0cnVjdCB0dG1fZGV2aWNlICpi ZGV2LCBib29sIHJlbW92ZV9hbGwpCj4gPj4gICAgICAgICAgICAgICAgICAgICAgY29udGludWU7 Cj4gPj4KPiA+PiAgICAgICAgICAgICAgaWYgKHJlbW92ZV9hbGwgfHwgYm8tPmJhc2UucmVzdiAh PSAmYm8tPmJhc2UuX3Jlc3YpIHsKPiA+PiAtICAgICAgICAgICAgICAgICAgICBzcGluX3VubG9j aygmZ2xvYi0+bHJ1X2xvY2spOwo+ID4+ICsgICAgICAgICAgICAgICAgICAgIHNwaW5fdW5sb2Nr KCZiZGV2LT5scnVfbG9jayk7Cj4gPj4gICAgICAgICAgICAgICAgICAgICAgZG1hX3Jlc3ZfbG9j ayhiby0+YmFzZS5yZXN2LCBOVUxMKTsKPiA+Pgo+ID4+IC0gICAgICAgICAgICAgICAgICAgIHNw aW5fbG9jaygmZ2xvYi0+bHJ1X2xvY2spOwo+ID4+ICsgICAgICAgICAgICAgICAgICAgIHNwaW5f bG9jaygmYmRldi0+bHJ1X2xvY2spOwo+ID4+ICAgICAgICAgICAgICAgICAgICAgIHR0bV9ib19j bGVhbnVwX3JlZnMoYm8sIGZhbHNlLCAhcmVtb3ZlX2FsbCwgdHJ1ZSk7Cj4gPj4KPiA+PiAgICAg ICAgICAgICAgfSBlbHNlIGlmIChkbWFfcmVzdl90cnlsb2NrKGJvLT5iYXNlLnJlc3YpKSB7Cj4g Pj4gICAgICAgICAgICAgICAgICAgICAgdHRtX2JvX2NsZWFudXBfcmVmcyhibywgZmFsc2UsICFy ZW1vdmVfYWxsLCB0cnVlKTsKPiA+PiAgICAgICAgICAgICAgfSBlbHNlIHsKPiA+PiAtICAgICAg ICAgICAgICAgICAgICBzcGluX3VubG9jaygmZ2xvYi0+bHJ1X2xvY2spOwo+ID4+ICsgICAgICAg ICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZiZGV2LT5scnVfbG9jayk7Cj4gPj4gICAgICAgICAg ICAgIH0KPiA+Pgo+ID4+ICAgICAgICAgICAgICB0dG1fYm9fcHV0KGJvKTsKPiA+PiAtICAgICAg ICAgICAgc3Bpbl9sb2NrKCZnbG9iLT5scnVfbG9jayk7Cj4gPj4gKyAgICAgICAgICAgIHNwaW5f bG9jaygmYmRldi0+bHJ1X2xvY2spOwo+ID4+ICAgICAgfQo+ID4+ICAgICAgbGlzdF9zcGxpY2Vf dGFpbCgmcmVtb3ZlZCwgJmJkZXYtPmRkZXN0cm95KTsKPiA+PiAgICAgIGVtcHR5ID0gbGlzdF9l bXB0eSgmYmRldi0+ZGRlc3Ryb3kpOwo+ID4+IC0gICAgc3Bpbl91bmxvY2soJmdsb2ItPmxydV9s b2NrKTsKPiA+PiArICAgIHNwaW5fdW5sb2NrKCZiZGV2LT5scnVfbG9jayk7Cj4gPj4KPiA+PiAg ICAgIHJldHVybiBlbXB0eTsKPiA+PiAgIH0KPiA+PiBAQCAtNDI0LDcgKzQyMyw3IEBAIHN0YXRp YyB2b2lkIHR0bV9ib19yZWxlYXNlKHN0cnVjdCBrcmVmICprcmVmKQo+ID4+ICAgICAgICAgICAg ICB0dG1fYm9fZmx1c2hfYWxsX2ZlbmNlcyhibyk7Cj4gPj4gICAgICAgICAgICAgIGJvLT5kZWxl dGVkID0gdHJ1ZTsKPiA+Pgo+ID4+IC0gICAgICAgICAgICBzcGluX2xvY2soJnR0bV9nbG9iLmxy dV9sb2NrKTsKPiA+PiArICAgICAgICAgICAgc3Bpbl9sb2NrKCZiby0+YmRldi0+bHJ1X2xvY2sp Owo+ID4+Cj4gPj4gICAgICAgICAgICAgIC8qCj4gPj4gICAgICAgICAgICAgICAqIE1ha2UgcGlu bmVkIGJvcyBpbW1lZGlhdGVseSBhdmFpbGFibGUgdG8KPiA+PiBAQCAtNDM4LDE3ICs0MzcsMTcg QEAgc3RhdGljIHZvaWQgdHRtX2JvX3JlbGVhc2Uoc3RydWN0IGtyZWYgKmtyZWYpCj4gPj4KPiA+ PiAgICAgICAgICAgICAga3JlZl9pbml0KCZiby0+a3JlZik7Cj4gPj4gICAgICAgICAgICAgIGxp c3RfYWRkX3RhaWwoJmJvLT5kZGVzdHJveSwgJmJkZXYtPmRkZXN0cm95KTsKPiA+PiAtICAgICAg ICAgICAgc3Bpbl91bmxvY2soJnR0bV9nbG9iLmxydV9sb2NrKTsKPiA+PiArICAgICAgICAgICAg c3Bpbl91bmxvY2soJmJvLT5iZGV2LT5scnVfbG9jayk7Cj4gPj4KPiA+PiAgICAgICAgICAgICAg c2NoZWR1bGVfZGVsYXllZF93b3JrKCZiZGV2LT53cSwKPiA+PiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICgoSFogLyAxMDApIDwgMSkgPyAxIDogSFogLyAxMDApOwo+ID4+ICAg ICAgICAgICAgICByZXR1cm47Cj4gPj4gICAgICB9Cj4gPj4KPiA+PiAtICAgIHNwaW5fbG9jaygm dHRtX2dsb2IubHJ1X2xvY2spOwo+ID4+ICsgICAgc3Bpbl9sb2NrKCZiby0+YmRldi0+bHJ1X2xv Y2spOwo+ID4+ICAgICAgdHRtX2JvX2RlbF9mcm9tX2xydShibyk7Cj4gPj4gICAgICBsaXN0X2Rl bCgmYm8tPmRkZXN0cm95KTsKPiA+PiAtICAgIHNwaW5fdW5sb2NrKCZ0dG1fZ2xvYi5scnVfbG9j ayk7Cj4gPj4gKyAgICBzcGluX3VubG9jaygmYm8tPmJkZXYtPmxydV9sb2NrKTsKPiA+Pgo+ID4+ ICAgICAgdHRtX2JvX2NsZWFudXBfbWVtdHlwZV91c2UoYm8pOwo+ID4+ICAgICAgZG1hX3Jlc3Zf dW5sb2NrKGJvLT5iYXNlLnJlc3YpOwo+ID4+IEBAIC02MjIsNyArNjIxLDcgQEAgaW50IHR0bV9t ZW1fZXZpY3RfZmlyc3Qoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4gPj4gICAgICB1bnNpZ25l ZCBpOwo+ID4+ICAgICAgaW50IHJldDsKPiA+Pgo+ID4+IC0gICAgc3Bpbl9sb2NrKCZ0dG1fZ2xv Yi5scnVfbG9jayk7Cj4gPj4gKyAgICBzcGluX2xvY2soJmJvLT5iZGV2LT5scnVfbG9jayk7Cj4g Pj4gICAgICBmb3IgKGkgPSAwOyBpIDwgVFRNX01BWF9CT19QUklPUklUWTsgKytpKSB7Cj4gPj4g ICAgICAgICAgICAgIGxpc3RfZm9yX2VhY2hfZW50cnkoYm8sICZtYW4tPmxydVtpXSwgbHJ1KSB7 Cj4gPj4gICAgICAgICAgICAgICAgICAgICAgYm9vbCBidXN5Owo+ID4+IEBAIC02NTksNyArNjU4 LDcgQEAgaW50IHR0bV9tZW1fZXZpY3RfZmlyc3Qoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4g Pj4gICAgICBpZiAoIWJvKSB7Cj4gPj4gICAgICAgICAgICAgIGlmIChidXN5X2JvICYmICF0dG1f Ym9fZ2V0X3VubGVzc196ZXJvKGJ1c3lfYm8pKQo+ID4+ICAgICAgICAgICAgICAgICAgICAgIGJ1 c3lfYm8gPSBOVUxMOwo+ID4+IC0gICAgICAgICAgICBzcGluX3VubG9jaygmdHRtX2dsb2IubHJ1 X2xvY2spOwo+ID4+ICsgICAgICAgICAgICBzcGluX3VubG9jaygmYm8tPmJkZXYtPmxydV9sb2Nr KTsKPiA+PiAgICAgICAgICAgICAgcmV0ID0gdHRtX21lbV9ldmljdF93YWl0X2J1c3koYnVzeV9i bywgY3R4LCB0aWNrZXQpOwo+ID4+ICAgICAgICAgICAgICBpZiAoYnVzeV9ibykKPiA+PiAgICAg ICAgICAgICAgICAgICAgICB0dG1fYm9fcHV0KGJ1c3lfYm8pOwo+ID4+IEBAIC02NzMsNyArNjcy LDcgQEAgaW50IHR0bV9tZW1fZXZpY3RfZmlyc3Qoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4g Pj4gICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPj4gICAgICB9Cj4gPj4KPiA+PiAtICAgIHNw aW5fdW5sb2NrKCZ0dG1fZ2xvYi5scnVfbG9jayk7Cj4gPj4gKyAgICBzcGluX3VubG9jaygmYm8t PmJkZXYtPmxydV9sb2NrKTsKPiA+Pgo+ID4+ICAgICAgcmV0ID0gdHRtX2JvX2V2aWN0KGJvLCBj dHgpOwo+ID4+ICAgICAgaWYgKGxvY2tlZCkKPiA+PiBAQCAtNzczLDEwICs3NzIsOSBAQCBzdGF0 aWMgaW50IHR0bV9ib19tZW1fcGxhY2VtZW50KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8s Cj4gPj4gICAgICBtZW0tPm1lbV90eXBlID0gcGxhY2UtPm1lbV90eXBlOwo+ID4+ICAgICAgbWVt LT5wbGFjZW1lbnQgPSBwbGFjZS0+ZmxhZ3M7Cj4gPj4KPiA+PiAtICAgIHNwaW5fbG9jaygmdHRt X2dsb2IubHJ1X2xvY2spOwo+ID4+ICsgICAgc3Bpbl9sb2NrKCZiby0+YmRldi0+bHJ1X2xvY2sp Owo+ID4+ICAgICAgdHRtX2JvX21vdmVfdG9fbHJ1X3RhaWwoYm8sIG1lbSwgTlVMTCk7Cj4gPj4g LSAgICBzcGluX3VubG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+ID4+IC0KPiA+PiArICAgIHNw aW5fdW5sb2NrKCZiby0+YmRldi0+bHJ1X2xvY2spOwo+ID4+ICAgICAgcmV0dXJuIDA7Cj4gPj4g ICB9Cj4gPj4KPiA+PiBAQCAtMTE2MCw3ICsxMTU4LDYgQEAgRVhQT1JUX1NZTUJPTCh0dG1fYm9f d2FpdCk7Cj4gPj4gICBpbnQgdHRtX2JvX3N3YXBvdXQoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0 ICpibywgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgsCj4gPj4gICAgICAgICAgICAgICAg IGdmcF90IGdmcF9mbGFncykKPiA+PiAgIHsKPiA+PiAtICAgIHN0cnVjdCB0dG1fZ2xvYmFsICpn bG9iID0gJnR0bV9nbG9iOwo+ID4+ICAgICAgYm9vbCBsb2NrZWQ7Cj4gPj4gICAgICBpbnQgcmV0 Owo+ID4+Cj4gPj4gQEAgLTExODUsNyArMTE4Miw3IEBAIGludCB0dG1fYm9fc3dhcG91dChzdHJ1 Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLCBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCwK PiA+Pgo+ID4+ICAgICAgdHRtX2JvX2RlbF9mcm9tX2xydShibyk7Cj4gPj4gICAgICAvKiBUT0RP OiBDbGVhbnVwIHRoZSBsb2NraW5nICovCj4gPj4gLSAgICBzcGluX3VubG9jaygmZ2xvYi0+bHJ1 X2xvY2spOwo+ID4+ICsgICAgc3Bpbl91bmxvY2soJmJvLT5iZGV2LT5scnVfbG9jayk7Cj4gPj4K PiA+PiAgICAgIC8qCj4gPj4gICAgICAgKiBNb3ZlIHRvIHN5c3RlbSBjYWNoZWQKPiA+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fZGV2aWNlLmMgYi9kcml2ZXJzL2dwdS9k cm0vdHRtL3R0bV9kZXZpY2UuYwo+ID4+IGluZGV4IDJjMjgwZmIxZTk5Mi4uOTI0ZDg5MjEwOWU4 IDEwMDY0NAo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2RldmljZS5jCj4gPj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fZGV2aWNlLmMKPiA+PiBAQCAtODEsNyArODEs NiBAQCBzdGF0aWMgaW50IHR0bV9nbG9iYWxfaW5pdCh2b2lkKQo+ID4+ICAgICAgdHRtX3Bvb2xf bWdyX2luaXQobnVtX3BhZ2VzICogNTAgLyAxMDApOwo+ID4+ICAgICAgdHRtX3R0X21ncl9pbml0 KCk7Cj4gPj4KPiA+PiAtICAgIHNwaW5fbG9ja19pbml0KCZnbG9iLT5scnVfbG9jayk7Cj4gPj4g ICAgICBnbG9iLT5kdW1teV9yZWFkX3BhZ2UgPSBhbGxvY19wYWdlKF9fR0ZQX1pFUk8gfCBHRlBf RE1BMzIpOwo+ID4+Cj4gPj4gICAgICBpZiAodW5saWtlbHkoZ2xvYi0+ZHVtbXlfcmVhZF9wYWdl ID09IE5VTEwpKSB7Cj4gPj4gQEAgLTEyNSwxMyArMTI0LDEyIEBAIEVYUE9SVF9TWU1CT0wodHRt X2dsb2JhbF9zd2Fwb3V0KTsKPiA+PiAgIGxvbmcgdHRtX2RldmljZV9zd2Fwb3V0KHN0cnVjdCB0 dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCwKPiA+PiAgICAg ICAgICAgICAgICAgICAgICBnZnBfdCBnZnBfZmxhZ3MpCj4gPj4gICB7Cj4gPj4gLSAgICBzdHJ1 Y3QgdHRtX2dsb2JhbCAqZ2xvYiA9ICZ0dG1fZ2xvYjsKPiA+PiAgICAgIHN0cnVjdCB0dG1fcmVz b3VyY2VfbWFuYWdlciAqbWFuOwo+ID4+ICAgICAgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpi bzsKPiA+PiAgICAgIHVuc2lnbmVkIGksIGo7Cj4gPj4gICAgICBpbnQgcmV0Owo+ID4+Cj4gPj4g LSAgICBzcGluX2xvY2soJmdsb2ItPmxydV9sb2NrKTsKPiA+PiArICAgIHNwaW5fbG9jaygmYmRl di0+bHJ1X2xvY2spOwo+ID4+ICAgICAgZm9yIChpID0gVFRNX1BMX1NZU1RFTTsgaSA8IFRUTV9O VU1fTUVNX1RZUEVTOyArK2kpIHsKPiA+PiAgICAgICAgICAgICAgbWFuID0gdHRtX21hbmFnZXJf dHlwZShiZGV2LCBpKTsKPiA+PiAgICAgICAgICAgICAgaWYgKCFtYW4gfHwgIW1hbi0+dXNlX3R0 KQo+ID4+IEBAIC0xNTYsNyArMTU0LDcgQEAgbG9uZyB0dG1fZGV2aWNlX3N3YXBvdXQoc3RydWN0 IHR0bV9kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4LAo+ID4+ICAg ICAgICAgICAgICAgICAgICAgIH0KPiA+PiAgICAgICAgICAgICAgfQo+ID4+ICAgICAgfQo+ID4+ IC0gICAgc3Bpbl91bmxvY2soJmdsb2ItPmxydV9sb2NrKTsKPiA+PiArICAgIHNwaW5fdW5sb2Nr KCZiZGV2LT5scnVfbG9jayk7Cj4gPj4gICAgICByZXR1cm4gMDsKPiA+PiAgIH0KPiA+PiAgIEVY UE9SVF9TWU1CT0wodHRtX2RldmljZV9zd2Fwb3V0KTsKPiA+PiBAQCAtMjIzLDYgKzIyMSw3IEBA IGludCB0dG1fZGV2aWNlX2luaXQoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1f ZGV2aWNlX2Z1bmNzICpmdW5jcywKPiA+Pgo+ID4+ICAgICAgYmRldi0+dm1hX21hbmFnZXIgPSB2 bWFfbWFuYWdlcjsKPiA+PiAgICAgIElOSVRfREVMQVlFRF9XT1JLKCZiZGV2LT53cSwgdHRtX2Rl dmljZV9kZWxheWVkX3dvcmtxdWV1ZSk7Cj4gPj4gKyAgICBzcGluX2xvY2tfaW5pdCgmYmRldi0+ bHJ1X2xvY2spOwo+ID4+ICAgICAgSU5JVF9MSVNUX0hFQUQoJmJkZXYtPmRkZXN0cm95KTsKPiA+ PiAgICAgIGJkZXYtPmRldl9tYXBwaW5nID0gbWFwcGluZzsKPiA+PiAgICAgIG11dGV4X2xvY2so JnR0bV9nbG9iYWxfbXV0ZXgpOwo+ID4+IEBAIC0yMzUsNyArMjM0LDYgQEAgRVhQT1JUX1NZTUJP TCh0dG1fZGV2aWNlX2luaXQpOwo+ID4+Cj4gPj4gICB2b2lkIHR0bV9kZXZpY2VfZmluaShzdHJ1 Y3QgdHRtX2RldmljZSAqYmRldikKPiA+PiAgIHsKPiA+PiAtICAgIHN0cnVjdCB0dG1fZ2xvYmFs ICpnbG9iID0gJnR0bV9nbG9iOwo+ID4+ICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2Vy ICptYW47Cj4gPj4gICAgICB1bnNpZ25lZCBpOwo+ID4+Cj4gPj4gQEAgLTI1MiwxMSArMjUwLDEx IEBAIHZvaWQgdHRtX2RldmljZV9maW5pKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2KQo+ID4+ICAg ICAgaWYgKHR0bV9ib19kZWxheWVkX2RlbGV0ZShiZGV2LCB0cnVlKSkKPiA+PiAgICAgICAgICAg ICAgcHJfZGVidWcoIkRlbGF5ZWQgZGVzdHJveSBsaXN0IHdhcyBjbGVhblxuIik7Cj4gPj4KPiA+ PiAtICAgIHNwaW5fbG9jaygmZ2xvYi0+bHJ1X2xvY2spOwo+ID4+ICsgICAgc3Bpbl9sb2NrKCZi ZGV2LT5scnVfbG9jayk7Cj4gPj4gICAgICBmb3IgKGkgPSAwOyBpIDwgVFRNX01BWF9CT19QUklP UklUWTsgKytpKQo+ID4+ICAgICAgICAgICAgICBpZiAobGlzdF9lbXB0eSgmbWFuLT5scnVbMF0p KQo+ID4+ICAgICAgICAgICAgICAgICAgICAgIHByX2RlYnVnKCJTd2FwIGxpc3QgJWQgd2FzIGNs ZWFuXG4iLCBpKTsKPiA+PiAtICAgIHNwaW5fdW5sb2NrKCZnbG9iLT5scnVfbG9jayk7Cj4gPj4g KyAgICBzcGluX3VubG9jaygmYmRldi0+bHJ1X2xvY2spOwo+ID4+Cj4gPj4gICAgICB0dG1fcG9v bF9maW5pKCZiZGV2LT5wb29sKTsKPiA+PiAgICAgIHR0bV9nbG9iYWxfcmVsZWFzZSgpOwo+ID4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9leGVjYnVmX3V0aWwuYyBiL2Ry aXZlcnMvZ3B1L2RybS90dG0vdHRtX2V4ZWNidWZfdXRpbC5jCj4gPj4gaW5kZXggNjkwYWI5N2Q1 MmI3Li4wNzFjNDhkNjcyYzYgMTAwNjQ0Cj4gPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90 dG1fZXhlY2J1Zl91dGlsLmMKPiA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9leGVj YnVmX3V0aWwuYwo+ID4+IEBAIC01MSwxNCArNTEsMTIgQEAgdm9pZCB0dG1fZXVfYmFja29mZl9y ZXNlcnZhdGlvbihzdHJ1Y3Qgd3dfYWNxdWlyZV9jdHggKnRpY2tldCwKPiA+PiAgICAgIGlmIChs aXN0X2VtcHR5KGxpc3QpKQo+ID4+ICAgICAgICAgICAgICByZXR1cm47Cj4gPj4KPiA+PiAtICAg IHNwaW5fbG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+ID4+ICAgICAgbGlzdF9mb3JfZWFjaF9l bnRyeShlbnRyeSwgbGlzdCwgaGVhZCkgewo+ID4+ICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX2J1 ZmZlcl9vYmplY3QgKmJvID0gZW50cnktPmJvOwo+ID4+Cj4gPj4gLSAgICAgICAgICAgIHR0bV9i b19tb3ZlX3RvX2xydV90YWlsKGJvLCAmYm8tPm1lbSwgTlVMTCk7Cj4gPj4gKyAgICAgICAgICAg IHR0bV9ib19tb3ZlX3RvX2xydV90YWlsX3VubG9ja2VkKGJvKTsKPiA+PiAgICAgICAgICAgICAg ZG1hX3Jlc3ZfdW5sb2NrKGJvLT5iYXNlLnJlc3YpOwo+ID4+ICAgICAgfQo+ID4+IC0gICAgc3Bp bl91bmxvY2soJnR0bV9nbG9iLmxydV9sb2NrKTsKPiA+Pgo+ID4+ICAgICAgaWYgKHRpY2tldCkK PiA+PiAgICAgICAgICAgICAgd3dfYWNxdWlyZV9maW5pKHRpY2tldCk7Cj4gPj4gQEAgLTE1NCw3 ICsxNTIsNiBAQCB2b2lkIHR0bV9ldV9mZW5jZV9idWZmZXJfb2JqZWN0cyhzdHJ1Y3Qgd3dfYWNx dWlyZV9jdHggKnRpY2tldCwKPiA+PiAgICAgIGlmIChsaXN0X2VtcHR5KGxpc3QpKQo+ID4+ICAg ICAgICAgICAgICByZXR1cm47Cj4gPj4KPiA+PiAtICAgIHNwaW5fbG9jaygmdHRtX2dsb2IubHJ1 X2xvY2spOwo+ID4+ICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeShlbnRyeSwgbGlzdCwgaGVhZCkg ewo+ID4+ICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvID0gZW50cnkt PmJvOwo+ID4+Cj4gPj4gQEAgLTE2MiwxMCArMTU5LDkgQEAgdm9pZCB0dG1fZXVfZmVuY2VfYnVm ZmVyX29iamVjdHMoc3RydWN0IHd3X2FjcXVpcmVfY3R4ICp0aWNrZXQsCj4gPj4gICAgICAgICAg ICAgICAgICAgICAgZG1hX3Jlc3ZfYWRkX3NoYXJlZF9mZW5jZShiby0+YmFzZS5yZXN2LCBmZW5j ZSk7Cj4gPj4gICAgICAgICAgICAgIGVsc2UKPiA+PiAgICAgICAgICAgICAgICAgICAgICBkbWFf cmVzdl9hZGRfZXhjbF9mZW5jZShiby0+YmFzZS5yZXN2LCBmZW5jZSk7Cj4gPj4gLSAgICAgICAg ICAgIHR0bV9ib19tb3ZlX3RvX2xydV90YWlsKGJvLCAmYm8tPm1lbSwgTlVMTCk7Cj4gPj4gKyAg ICAgICAgICAgIHR0bV9ib19tb3ZlX3RvX2xydV90YWlsX3VubG9ja2VkKGJvKTsKPiA+PiAgICAg ICAgICAgICAgZG1hX3Jlc3ZfdW5sb2NrKGJvLT5iYXNlLnJlc3YpOwo+ID4+ICAgICAgfQo+ID4+ IC0gICAgc3Bpbl91bmxvY2soJnR0bV9nbG9iLmxydV9sb2NrKTsKPiA+PiAgICAgIGlmICh0aWNr ZXQpCj4gPj4gICAgICAgICAgICAgIHd3X2FjcXVpcmVfZmluaSh0aWNrZXQpOwo+ID4+ICAgfQo+ ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9yZXNvdXJjZS5jIGIvZHJp dmVycy9ncHUvZHJtL3R0bS90dG1fcmVzb3VyY2UuYwo+ID4+IGluZGV4IGVkMTY3MmE5ZjMzMi4u MDRmMmVlZjY1M2FiIDEwMDY0NAo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3Jl c291cmNlLmMKPiA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9yZXNvdXJjZS5jCj4g Pj4gQEAgLTkxLDcgKzkxLDYgQEAgaW50IHR0bV9yZXNvdXJjZV9tYW5hZ2VyX2V2aWN0X2FsbChz dHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPiA+PiAgICAgICAgICAgICAgLm5vX3dhaXRfZ3B1ID0g ZmFsc2UsCj4gPj4gICAgICAgICAgICAgIC5mb3JjZV9hbGxvYyA9IHRydWUKPiA+PiAgICAgIH07 Cj4gPj4gLSAgICBzdHJ1Y3QgdHRtX2dsb2JhbCAqZ2xvYiA9ICZ0dG1fZ2xvYjsKPiA+PiAgICAg IHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwo+ID4+ICAgICAgaW50IHJldDsKPiA+PiAgICAgIHVu c2lnbmVkIGk7Cj4gPj4gQEAgLTEwMCwxOCArOTksMTggQEAgaW50IHR0bV9yZXNvdXJjZV9tYW5h Z2VyX2V2aWN0X2FsbChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPiA+PiAgICAgICAqIENhbid0 IHVzZSBzdGFuZGFyZCBsaXN0IHRyYXZlcnNhbCBzaW5jZSB3ZSdyZSB1bmxvY2tpbmcuCj4gPj4g ICAgICAgKi8KPiA+Pgo+ID4+IC0gICAgc3Bpbl9sb2NrKCZnbG9iLT5scnVfbG9jayk7Cj4gPj4g KyAgICBzcGluX2xvY2soJmJkZXYtPmxydV9sb2NrKTsKPiA+PiAgICAgIGZvciAoaSA9IDA7IGkg PCBUVE1fTUFYX0JPX1BSSU9SSVRZOyArK2kpIHsKPiA+PiAgICAgICAgICAgICAgd2hpbGUgKCFs aXN0X2VtcHR5KCZtYW4tPmxydVtpXSkpIHsKPiA+PiAtICAgICAgICAgICAgICAgICAgICBzcGlu X3VubG9jaygmZ2xvYi0+bHJ1X2xvY2spOwo+ID4+ICsgICAgICAgICAgICAgICAgICAgIHNwaW5f dW5sb2NrKCZiZGV2LT5scnVfbG9jayk7Cj4gPj4gICAgICAgICAgICAgICAgICAgICAgcmV0ID0g dHRtX21lbV9ldmljdF9maXJzdChiZGV2LCBtYW4sIE5VTEwsICZjdHgsCj4gPj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKPiA+PiAgICAgICAg ICAgICAgICAgICAgICBpZiAocmV0KQo+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuIHJldDsKPiA+PiAtICAgICAgICAgICAgICAgICAgICBzcGluX2xvY2soJmdsb2ItPmxy dV9sb2NrKTsKPiA+PiArICAgICAgICAgICAgICAgICAgICBzcGluX2xvY2soJmJkZXYtPmxydV9s b2NrKTsKPiA+PiAgICAgICAgICAgICAgfQo+ID4+ICAgICAgfQo+ID4+IC0gICAgc3Bpbl91bmxv Y2soJmdsb2ItPmxydV9sb2NrKTsKPiA+PiArICAgIHNwaW5fdW5sb2NrKCZiZGV2LT5scnVfbG9j ayk7Cj4gPj4KPiA+PiAgICAgIHNwaW5fbG9jaygmbWFuLT5tb3ZlX2xvY2spOwo+ID4+ICAgICAg ZmVuY2UgPSBkbWFfZmVuY2VfZ2V0KG1hbi0+bW92ZSk7Cj4gPj4gZGlmZiAtLWdpdCBhL2luY2x1 ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmggYi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZl ci5oCj4gPj4gaW5kZXggZDAwN2ZlZWY3Njc2Li5kYmNjYWM5NTdmOGYgMTAwNjQ0Cj4gPj4gLS0t IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaAo+ID4+ICsrKyBiL2luY2x1ZGUvZHJt L3R0bS90dG1fYm9fZHJpdmVyLmgKPiA+PiBAQCAtMTgwLDkgKzE4MCw5IEBAIHN0YXRpYyBpbmxp bmUgaW50IHR0bV9ib19yZXNlcnZlX3Nsb3dwYXRoKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAq Ym8sCj4gPj4gICBzdGF0aWMgaW5saW5lIHZvaWQKPiA+PiAgIHR0bV9ib19tb3ZlX3RvX2xydV90 YWlsX3VubG9ja2VkKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCj4gPj4gICB7Cj4gPj4g LSAgICBzcGluX2xvY2soJnR0bV9nbG9iLmxydV9sb2NrKTsKPiA+PiArICAgIHNwaW5fbG9jaygm Ym8tPmJkZXYtPmxydV9sb2NrKTsKPiA+PiAgICAgIHR0bV9ib19tb3ZlX3RvX2xydV90YWlsKGJv LCAmYm8tPm1lbSwgTlVMTCk7Cj4gPj4gLSAgICBzcGluX3VubG9jaygmdHRtX2dsb2IubHJ1X2xv Y2spOwo+ID4+ICsgICAgc3Bpbl91bmxvY2soJmJvLT5iZGV2LT5scnVfbG9jayk7Cj4gPj4gICB9 Cj4gPj4KPiA+PiAgIHN0YXRpYyBpbmxpbmUgdm9pZCB0dG1fYm9fYXNzaWduX21lbShzdHJ1Y3Qg dHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+ID4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS90dG0v dHRtX2RldmljZS5oIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9kZXZpY2UuaAo+ID4+IGluZGV4IGNk YTZlZmI0YzM0Yi4uYmFlNTZkMjllOGZmIDEwMDY0NAo+ID4+IC0tLSBhL2luY2x1ZGUvZHJtL3R0 bS90dG1fZGV2aWNlLmgKPiA+PiArKysgYi9pbmNsdWRlL2RybS90dG0vdHRtX2RldmljZS5oCj4g Pj4gQEAgLTU2LDcgKzU2LDYgQEAgZXh0ZXJuIHN0cnVjdCB0dG1fZ2xvYmFsIHsKPiA+PiAgICAg ICAqLwo+ID4+Cj4gPj4gICAgICBzdHJ1Y3QgcGFnZSAqZHVtbXlfcmVhZF9wYWdlOwo+ID4+IC0g ICAgc3BpbmxvY2tfdCBscnVfbG9jazsKPiA+Pgo+ID4+ICAgICAgLyoqCj4gPj4gICAgICAgKiBQ cm90ZWN0ZWQgYnkgdHRtX2dsb2JhbF9tdXRleC4KPiA+PiBAQCAtMjc3LDggKzI3Niw5IEBAIHN0 cnVjdCB0dG1fZGV2aWNlIHsKPiA+PiAgICAgIHN0cnVjdCB0dG1fcG9vbCBwb29sOwo+ID4+Cj4g Pj4gICAgICAvKgo+ID4+IC0gICAgICogUHJvdGVjdGVkIGJ5IHRoZSBnbG9iYWw6bHJ1IGxvY2su Cj4gPj4gKyAgICAgKiBQcm90ZWN0aW9uIGZvciB0aGUgcGVyIG1hbmFnZXIgTFJVIGFuZCBkZGVz dHJveSBsaXN0cy4KPiA+PiAgICAgICAqLwo+ID4+ICsgICAgc3BpbmxvY2tfdCBscnVfbG9jazsK PiA+PiAgICAgIHN0cnVjdCBsaXN0X2hlYWQgZGRlc3Ryb3k7Cj4gPj4KPiA+PiAgICAgIC8qCj4g Pj4gLS0KPiA+PiAyLjI1LjEKPiA+Pgo+ID4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCj4gPj4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+ID4+IGRyaS1k ZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo+CgoKLS0gCkRhbmllbCBWZXR0ZXIKU29m dHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=