From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zhang, Jerry (Junwei)" Subject: Re: [PATCH v5 4/5] drm/amdgpu: use bulk moves for efficient VM LRU handling (v5) Date: Wed, 22 Aug 2018 16:51:51 +0800 Message-ID: <5B7D2427.1020006@amd.com> References: <1534924375-5837-1-git-send-email-ray.huang@amd.com> <1534924375-5837-5-git-send-email-ray.huang@amd.com> <5B7D19B8.2060307@amd.com> <20180822083329.GE28364@hr-amur2> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180822083329.GE28364@hr-amur2> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Huang Rui Cc: "dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , "Koenig, Christian" T24gMDgvMjIvMjAxOCAwNDozMyBQTSwgSHVhbmcgUnVpIHdyb3RlOgo+IE9uIFdlZCwgQXVnIDIy LCAyMDE4IGF0IDA0OjA3OjIwUE0gKzA4MDAsIFpoYW5nLCBKZXJyeSB3cm90ZToKPj4gT24gMDgv MjIvMjAxOCAwMzo1MiBQTSwgSHVhbmcgUnVpIHdyb3RlOgo+Pj4gSSBjb250aW51ZSB0byB3b3Jr IGZvciBidWxrIG1vdmluZyB0aGF0IGJhc2VkIG9uIHRoZSBwcm9wb3NhbCBieSBDaHJpc3RpYW4u Cj4+Pgo+Pj4gQmFja2dyb3VuZDoKPj4+IGFtZGdwdSBkcml2ZXIgd2lsbCBtb3ZlIGFsbCBQRC9Q VCBhbmQgUGVyVk0gQk9zIGludG8gaWRsZSBsaXN0LiBUaGVuIG1vdmUgYWxsIG9mCj4+PiB0aGVt IG9uIHRoZSBlbmQgb2YgTFJVIGxpc3Qgb25lIGJ5IG9uZS4gVGh1cywgdGhhdCBjYXVzZSBzbyBt YW55IEJPcyBtb3ZlZCB0bwo+Pj4gdGhlIGVuZCBvZiB0aGUgTFJVLCBhbmQgaW1wYWN0IHBlcmZv cm1hbmNlIHNlcmlvdXNseS4KPj4+Cj4+PiBUaGVuIENocmlzdGlhbiBwcm92aWRlZCBhIHdvcmth cm91bmQgdG8gbm90IG1vdmUgUEQvUFQgQk9zIG9uIExSVSB3aXRoIGJlbG93Cj4+PiBwYXRjaDoK Pj4+IENvbW1pdCAwYmJmMzIwMjZjZjViYTQxZTk5MjJiMzBlMjZlMWJlZDFlY2QzOGFlICgiZHJt L2FtZGdwdTogYmFuZCBhaWQKPj4+IHZhbGlkYXRpbmcgVk0gUFRzIikKPj4+Cj4+PiBIb3dldmVy LCB0aGUgZmluYWwgc29sdXRpb24gc2hvdWxkIGJ1bGsgbW92ZSBhbGwgUEQvUFQgYW5kIFBlclZN IEJPcyBvbiB0aGUgTFJVCj4+PiBpbnN0ZWFkIG9mIG9uZSBieSBvbmUuCj4+Pgo+Pj4gV2hlbmV2 ZXIgYW1kZ3B1X3ZtX3ZhbGlkYXRlX3B0X2JvcygpIGlzIGNhbGxlZCBhbmQgd2UgaGF2ZSBCT3Mg d2hpY2ggbmVlZCB0byBiZQo+Pj4gdmFsaWRhdGVkIHdlIG1vdmUgYWxsIEJPcyB0b2dldGhlciB0 byB0aGUgZW5kIG9mIHRoZSBMUlUgd2l0aG91dCBkcm9wcGluZyB0aGUKPj4+IGxvY2sgZm9yIHRo ZSBMUlUuCj4+Pgo+Pj4gV2hpbGUgZG9pbmcgc28gd2Ugbm90ZSB0aGUgYmVnaW5uaW5nIGFuZCBl bmQgb2YgdGhpcyBibG9jayBpbiB0aGUgTFJVIGxpc3QuCj4+Pgo+Pj4gTm93IHdoZW4gYW1kZ3B1 X3ZtX3ZhbGlkYXRlX3B0X2JvcygpIGlzIGNhbGxlZCBhbmQgd2UgZG9uJ3QgaGF2ZSBhbnl0aGlu ZyB0byBkbywKPj4+IHdlIGRvbid0IG1vdmUgZXZlcnkgQk8gb25lIGJ5IG9uZSwgYnV0IGluc3Rl YWQgY3V0IHRoZSBMUlUgbGlzdCBpbnRvIHBpZWNlcyBzbwo+Pj4gdGhhdCB3ZSBidWxrIG1vdmUg ZXZlcnl0aGluZyB0byB0aGUgZW5kIGluIGp1c3Qgb25lIG9wZXJhdGlvbi4KPj4+Cj4+PiBUZXN0 IGRhdGE6Cj4+PiArLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwo+Pj4gfCAgICAgICAgICAg ICAgfFRoZSBUYWxvcyAgICAgICAgfENscGVhayhPQ0wpfEJ1c1NwZWVkUmVhZGJhY2soT0NMKSAg ICAgICAgICAgICAgICAgIHwKPj4+IHwgICAgICAgICAgICAgIHxQcmluY2lwbGUoVnVsa2FuKXwg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4+PiAr LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwo+Pj4gfCAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgfDAuMzE5IG1zKDFrKSAwLjMxNCBtcygySykgMC4zMDggbXMo NEspIHwKPj4+IHwgT3JpZ2luYWwgICAgIHwgIDE0Ny43IEZQUyAgICAgIHwgIDc2Ljg2IHVzIHww LjMwNyBtcyg4SykgMC4zMTAgbXMoMTZLKSAgICAgICAgICAgICB8Cj4+PiArLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKwo+Pj4gfCBPcmlnbmlhbCArIFdBfCAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgfDAuMjU0IG1zKDFLKSAwLjI0MSBtcygySykgICAgICAgICAgICAgIHwKPj4+IHwo ZG9uJ3QgbW92ZSAgIHwgIDE2Mi4xIEZQUyAgICAgIHwgIDQyLjE1IHVzIHwwLjIzMCBtcyg0Sykg MC4yMjMgbXMoOEspIDAuMjA0IG1zKDE2Syl8Cj4+PiB8UFQgQk9zIG9uIExSVSl8ICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfAo+Pj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKPj4+IHwgQnVsayBtb3ZlICAg IHwgIDE2My4xIEZQUyAgICAgIHwgIDQwLjUyIHVzIHwwLjI0NCBtcygxSykgMC4yNTIgbXMoMksp IDAuMjEzIG1zKDRLKSB8Cj4+PiB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICB8MC4yMTQgbXMoOEspIDAuMjI1IG1zKDE2SykgICAgICAgICAgICAgfAo+Pj4gKy0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKPj4+Cj4+PiBBZnRlciB0ZXN0IHRoZW0gd2l0aCBh Ym92ZSB0aHJlZSBiZW5jaG1hcmtzIGluY2x1ZGUgdnVsa2FuIGFuZCBvcGVuY2wuIFdlIGNhbgo+ Pj4gc2VlIHRoZSB2aXNpYmxlIGltcHJvdmVtZW50IHRoYW4gb3JpZ2luYWwsIGFuZCBldmVuIGJl dHRlciB0aGFuIG9yaWdpbmFsIHdpdGgKPj4+IHdvcmthcm91bmQuCj4+Pgo+Pj4gdjI6IG1vdmUg YWxsIEJPcyBpbmNsdWRlIGlkbGUsIHJlbG9jYXRlZCwgYW5kIG1vdmVkIGxpc3QgdG8gdGhlIGVu ZCBvZiBMUlUgYW5kCj4+PiBwdXQgdGhlbSB0b2dldGhlci4KPj4+IHYzOiByZW1vdmUgdW51c2Vk IHBhcmFtZXRlciBhbmQgdXNlIGxpc3RfZm9yX2VhY2hfZW50cnkgaW5zdGVhZCBvZiB0aGUgb25l IHdpdGgKPj4+IHNhdmUgZW50cnkuCj4+PiB2NDogbW92ZSB0aGUgYW1kZ3B1X3ZtX21vdmVfdG9f bHJ1X3RhaWwgYWZ0ZXIgY29tbWFuZCBzdWJtaXNzaW9uLCBhdCB0aGF0IHRpbWUsCj4+PiBhbGwg Ym8gd2lsbCBiZSBiYWNrIG9uIGlkbGUgbGlzdC4KPj4+IHY1OiByZW1vdmUgYW1kZ3B1X3ZtX21v dmVfdG9fbHJ1X3RhaWxfYnlfbGlzdCgpLCB1c2UgYnVsa19tb3ZlYWJsZSBpbnN0cmVhZCBvZgo+ Pj4gdmFsaWRhdGVkLCBhbmQgbW92ZSB0dG1fYm9fYnVsa19tb3ZlX2xydV90YWlsKCkgYWxzbyBp bnRvCj4+PiBhbWRncHVfdm1fbW92ZV90b19scnVfdGFpbCgpLgo+Pj4KPj4+IFNpZ25lZC1vZmYt Ynk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KPj4+IFNpZ25l ZC1vZmYtYnk6IEh1YW5nIFJ1aSA8cmF5Lmh1YW5nQGFtZC5jb20+Cj4+PiBUZXN0ZWQtYnk6IE1p a2UgTG90aGlhbiA8bWlrZUBmaXJlYnVybi5jby51az4KPj4+IFRlc3RlZC1ieTogRGlldGVyIE7D vHR6ZWwgPERpZXRlckBudWV0emVsLWhoLmRlPgo+Pj4gQWNrZWQtYnk6IENodW5taW5nIFpob3Ug PGRhdmlkMS56aG91QGFtZC5jb20+Cj4+PiAtLS0KPj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9jcy5jIHwgMTAgKysrKysrCj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfdm0uYyB8IDY2ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0KPj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5oIHwgMTEgKysr KystCj4+PiAgICAzIGZpbGVzIGNoYW5nZWQsIDY1IGluc2VydGlvbnMoKyksIDIyIGRlbGV0aW9u cygtKQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jCj4+PiBpbmRl eCA1MDJiOTRmLi40ZWZkYmQyIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2NzLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9jcy5jCj4+PiBAQCAtMTI2MCw2ICsxMjYwLDE1IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2Nz X3N1Ym1pdChzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcCwKPj4+ICAgIAlyZXR1cm4gMDsKPj4+ ICAgIH0KPj4+Cj4+PiArc3RhdGljIHZvaWQgYW1kZ3B1X2NzX3ZtX21vdmVfb25fbHJ1KHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2LAo+Pj4gKwkJCQkgICAgIHN0cnVjdCBhbWRncHVfY3NfcGFy c2VyICpwKQo+Pj4gK3sKPj4+ICsJc3RydWN0IGFtZGdwdV9mcHJpdiAqZnByaXYgPSBwLT5maWxw LT5kcml2ZXJfcHJpdjsKPj4+ICsJc3RydWN0IGFtZGdwdV92bSAqdm0gPSAmZnByaXYtPnZtOwo+ Pj4gKwo+Pj4gKwlhbWRncHVfdm1fbW92ZV90b19scnVfdGFpbChhZGV2LCB2bSk7Cj4+PiArfQo+ Pj4gKwo+Pj4gICAgaW50IGFtZGdwdV9jc19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2 b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHApCj4+PiAgICB7Cj4+PiAgICAJc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBkZXYtPmRldl9wcml2YXRlOwo+Pj4gQEAgLTEzMTAsNiAr MTMxOSw3IEBAIGludCBhbWRncHVfY3NfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9p ZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxwKQo+Pj4KPj4+ICAgIAlyID0gYW1kZ3B1X2Nz X3N1Ym1pdCgmcGFyc2VyLCBjcyk7Cj4+Pgo+Pj4gKwlhbWRncHVfY3Nfdm1fbW92ZV9vbl9scnUo YWRldiwgJnBhcnNlcik7Cj4+Cj4+IExvb2tzIHdlIGNhbiBjYWxsIGFtZGdwdV92bV9tb3ZlX3Rv X2xydV90YWlsKCkgZGlyZWN0bHkuCj4KPiBCb3RoIG9rLCBoZXJlLCBJIGp1c3QKPgo+Pgo+Pj4g ICAgb3V0Ogo+Pj4gICAgCWFtZGdwdV9jc19wYXJzZXJfZmluaSgmcGFyc2VyLCByLCByZXNlcnZl ZF9idWZmZXJzKTsKPj4+ICAgIAlyZXR1cm4gcjsKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV92bS5jCj4+PiBpbmRleCA5Yzg0NzcwLi5kYjFmMjhhIDEwMDY0NAo+Pj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKPj4+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jCj4+PiBAQCAtMjY4LDYgKzI2OCw0NyBAQCB2 b2lkIGFtZGdwdV92bV9nZXRfcGRfYm8oc3RydWN0IGFtZGdwdV92bSAqdm0sCj4+PiAgICB9Cj4+ Pgo+Pj4gICAgLyoqCj4+PiArICogYW1kZ3B1X3ZtX21vdmVfdG9fbHJ1X3RhaWwgLSBtb3ZlIGFs bCBCT3MgdG8gdGhlIGVuZCBvZiBMUlUKPj4+ICsgKgo+Pj4gKyAqIEBhZGV2OiBhbWRncHUgZGV2 aWNlIHBvaW50ZXIKPj4+ICsgKiBAdm06IHZtIHByb3ZpZGluZyB0aGUgQk9zCj4+PiArICoKPj4+ ICsgKiBNb3ZlIGFsbCBCT3MgdG8gdGhlIGVuZCBvZiBMUlUgYW5kIHJlbWVtYmVyIHRoZWlyIHBv c2l0aW9ucyB0byBwdXQgdGhlbQo+Pj4gKyAqIHRvZ2V0aGVyLgo+Pj4gKyAqLwo+Pj4gK3ZvaWQg YW1kZ3B1X3ZtX21vdmVfdG9fbHJ1X3RhaWwoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4+ PiArCQkJCXN0cnVjdCBhbWRncHVfdm0gKnZtKQo+Pj4gK3sKPj4+ICsJc3RydWN0IHR0bV9ib19n bG9iYWwgKmdsb2IgPSBhZGV2LT5tbWFuLmJkZXYuZ2xvYjsKPj4+ICsJc3RydWN0IGFtZGdwdV92 bV9ib19iYXNlICpib19iYXNlOwo+Pj4gKwo+Pj4gKwlpZiAodm0tPmJ1bGtfbW92ZWFibGUpIHsK Pj4+ICsJCXNwaW5fbG9jaygmZ2xvYi0+bHJ1X2xvY2spOwo+Pj4gKwkJdHRtX2JvX2J1bGtfbW92 ZV9scnVfdGFpbCgmdm0tPmxydV9idWxrX21vdmUpOwo+Pj4gKwkJc3Bpbl91bmxvY2soJmdsb2It PmxydV9sb2NrKTsKPj4+ICsJCXJldHVybjsKPj4+ICsJfQo+Pgo+PiBRdWVzdGlvbjoKPj4gV2h5 IHdlIGhhbmRsZSBidWxrIG1vdmUgaW4gbmV4dCBjb21tYW5kIHN1Ym1pc3Npb24gaW5zdGVhZCBv ZiBjdXJyZW50IGNzIHByb2Nlc3M/Cj4KPiBCdWxrIG1vdmUgaXMgdG8gbW92ZSBhbGwgcHQgYW5k IHBlci12bSBib3MgdG8gdGhlIGVuZCBvZiBscnUsIGFmdGVyIHRoZSBjcwo+IGlzIGRvbmUsIGFs bCB0aGUgYm9zIHdpbGwgbW92ZSBpbnRvIHRoZSBpZGxlIGxpc3QgYWdhaW4gZnJvbSBtb3ZlZCBh bmQKPiByZWxvY2F0ZWQgbGlzdC4gT25seSBibyBmcm9tIGV2aWN0ZWQgaXMgdmFsaWRhdGVkLCB3 ZSB3aWxsIHJlbWVtYmVyIGFuZAo+IHN0b3JlIHRoZSBibyBwb3NpdGlvbnMuCgpUaGFua3MgdG8g cmVwbHkuCgp3aXRoIG90aGVycyBmaXgsIGZlZWwgZnJlZSB0byBhZGQgbXkgUkIgaW4gdGhpcyBw YXRjaC4KClJlZ2FyZHMsCkplcnJ5Cgo+Cj4+Cj4+PiArCj4+PiArCW1lbXNldCgmdm0tPmxydV9i dWxrX21vdmUsIDAsIHNpemVvZih2bS0+bHJ1X2J1bGtfbW92ZSkpOwo+Pj4gKwo+Pj4gKwlzcGlu X2xvY2soJmdsb2ItPmxydV9sb2NrKTsKPj4+ICsJbGlzdF9mb3JfZWFjaF9lbnRyeShib19iYXNl LCAmdm0tPmlkbGUsIHZtX3N0YXR1cykgewo+Pj4gKwkJc3RydWN0IGFtZGdwdV9ibyAqYm8gPSBi b19iYXNlLT5ibzsKPj4+ICsKPj4+ICsJCWlmICghYm8tPnBhcmVudCkKPj4+ICsJCQljb250aW51 ZTsKPj4+ICsKPj4+ICsJCXR0bV9ib19tb3ZlX3RvX2xydV90YWlsKCZiby0+dGJvLCAmdm0tPmxy dV9idWxrX21vdmUpOwo+Pj4gKwkJaWYgKGJvLT5zaGFkb3cpCj4+PiArCQkJdHRtX2JvX21vdmVf dG9fbHJ1X3RhaWwoJmJvLT5zaGFkb3ctPnRibywKPj4+ICsJCQkJCQkmdm0tPmxydV9idWxrX21v dmUpOwo+Pj4gKwl9Cj4+PiArCXNwaW5fdW5sb2NrKCZnbG9iLT5scnVfbG9jayk7Cj4+PiArCj4+ PiArCXZtLT5idWxrX21vdmVhYmxlID0gdHJ1ZTsKPj4+ICt9Cj4+PiArCj4+PiArLyoqCj4+PiAg ICAgKiBhbWRncHVfdm1fdmFsaWRhdGVfcHRfYm9zIC0gdmFsaWRhdGUgdGhlIHBhZ2UgdGFibGUg Qk9zCj4+PiAgICAgKgo+Pj4gICAgICogQGFkZXY6IGFtZGdwdSBkZXZpY2UgcG9pbnRlcgo+Pj4g QEAgLTI4NCwxMCArMzI1LDExIEBAIGludCBhbWRncHVfdm1fdmFsaWRhdGVfcHRfYm9zKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwKPj4+ICAgIAkJCSAg ICAgIGludCAoKnZhbGlkYXRlKSh2b2lkICpwLCBzdHJ1Y3QgYW1kZ3B1X2JvICpibyksCj4+PiAg ICAJCQkgICAgICB2b2lkICpwYXJhbSkKPj4+ICAgIHsKPj4+IC0Jc3RydWN0IHR0bV9ib19nbG9i YWwgKmdsb2IgPSBhZGV2LT5tbWFuLmJkZXYuZ2xvYjsKPj4+ICAgIAlzdHJ1Y3QgYW1kZ3B1X3Zt X2JvX2Jhc2UgKmJvX2Jhc2UsICp0bXA7Cj4+PiAgICAJaW50IHIgPSAwOwo+Pj4KPj4+ICsJdm0t PmJ1bGtfbW92ZWFibGUgJj0gbGlzdF9lbXB0eSgmdm0tPmV2aWN0ZWQpOwo+Pj4gKwo+Pj4gICAg CWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShib19iYXNlLCB0bXAsICZ2bS0+ZXZpY3RlZCwgdm1f c3RhdHVzKSB7Cj4+PiAgICAJCXN0cnVjdCBhbWRncHVfYm8gKmJvID0gYm9fYmFzZS0+Ym87Cj4+ Pgo+Pj4gQEAgLTI5NSwxMiArMzM3LDYgQEAgaW50IGFtZGdwdV92bV92YWxpZGF0ZV9wdF9ib3Mo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfdm0gKnZtLAo+Pj4gICAg CQkJciA9IHZhbGlkYXRlKHBhcmFtLCBibyk7Cj4+PiAgICAJCQlpZiAocikKPj4+ICAgIAkJCQli cmVhazsKPj4+IC0KPj4+IC0JCQlzcGluX2xvY2soJmdsb2ItPmxydV9sb2NrKTsKPj4+IC0JCQl0 dG1fYm9fbW92ZV90b19scnVfdGFpbCgmYm8tPnRibywgTlVMTCk7Cj4+PiAtCQkJaWYgKGJvLT5z aGFkb3cpCj4+PiAtCQkJCXR0bV9ib19tb3ZlX3RvX2xydV90YWlsKCZiby0+c2hhZG93LT50Ym8s IE5VTEwpOwo+Pj4gLQkJCXNwaW5fdW5sb2NrKCZnbG9iLT5scnVfbG9jayk7Cj4+PiAgICAJCX0K Pj4+Cj4+PiAgICAJCWlmIChiby0+dGJvLnR5cGUgIT0gdHRtX2JvX3R5cGVfa2VybmVsKSB7Cj4+ PiBAQCAtMzEyLDIwICszNDgsNyBAQCBpbnQgYW1kZ3B1X3ZtX3ZhbGlkYXRlX3B0X2JvcyhzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV92bSAqdm0sCj4+PiAgICAJCX0K Pj4+ICAgIAl9Cj4+Pgo+Pj4gLQlzcGluX2xvY2soJmdsb2ItPmxydV9sb2NrKTsKPj4+IC0JbGlz dF9mb3JfZWFjaF9lbnRyeShib19iYXNlLCAmdm0tPmlkbGUsIHZtX3N0YXR1cykgewo+Pj4gLQkJ c3RydWN0IGFtZGdwdV9ibyAqYm8gPSBib19iYXNlLT5ibzsKPj4+IC0KPj4+IC0JCWlmICghYm8t PnBhcmVudCkKPj4+IC0JCQljb250aW51ZTsKPj4+IC0KPj4+IC0JCXR0bV9ib19tb3ZlX3RvX2xy dV90YWlsKCZiby0+dGJvLCBOVUxMKTsKPj4+IC0JCWlmIChiby0+c2hhZG93KQo+Pj4gLQkJCXR0 bV9ib19tb3ZlX3RvX2xydV90YWlsKCZiby0+c2hhZG93LT50Ym8sIE5VTEwpOwo+Pj4gLQl9Cj4+ PiAtCXNwaW5fdW5sb2NrKCZnbG9iLT5scnVfbG9jayk7Cj4+PiAtCj4+PiAtCXJldHVybiByOwo+ Pj4gKwlyZXR1cm4gMDsKPj4KPj4gV2lsbCBpdCBicmVhayBmcm9tIHZhbGlkYXRlKCkgYW5kIHJl dHVybiByPwo+Cj4gTmljZSBmb3VuZGluZywgdGhpcyBpcyBteSB0eXBvLCB0aGF0IEkgZG9uJ3Qg bW9kaWZ5IGl0IGJhY2suCj4KPj4KPj4+ICAgIH0KPj4+Cj4+PiAgICAvKioKPj4+IEBAIC0yNTk2 LDYgKzI2MTksNyBAQCBpbnQgYW1kZ3B1X3ZtX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYsIHN0cnVjdCBhbWRncHVfdm0gKnZtLAo+Pj4gICAgCQlyZXR1cm4gcjsKPj4+Cj4+PiAgICAJ dm0tPnB0ZV9zdXBwb3J0X2F0cyA9IGZhbHNlOwo+Pj4gKwl2bS0+YnVsa19tb3ZlYWJsZSA9IHRy dWU7Cj4+Pgo+Pj4gICAgCWlmICh2bV9jb250ZXh0ID09IEFNREdQVV9WTV9DT05URVhUX0NPTVBV VEUpIHsKPj4+ICAgIAkJdm0tPnVzZV9jcHVfZm9yX3VwZGF0ZSA9ICEhKGFkZXYtPnZtX21hbmFn ZXIudm1fdXBkYXRlX21vZGUgJgo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV92bS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Zt LmgKPj4+IGluZGV4IDY3YTE1ZDQuLmJiZGRlNDAgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uaAo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X3ZtLmgKPj4+IEBAIC0yOSw2ICsyOSw3IEBACj4+PiAgICAjaW5jbHVk ZSA8bGludXgvcmJ0cmVlLmg+Cj4+PiAgICAjaW5jbHVkZSA8ZHJtL2dwdV9zY2hlZHVsZXIuaD4K Pj4+ICAgICNpbmNsdWRlIDxkcm0vZHJtX2ZpbGUuaD4KPj4+ICsjaW5jbHVkZSA8ZHJtL3R0bS90 dG1fYm9fZHJpdmVyLmg+Cj4+Pgo+Pj4gICAgI2luY2x1ZGUgImFtZGdwdV9zeW5jLmgiCj4+PiAg ICAjaW5jbHVkZSAiYW1kZ3B1X3JpbmcuaCIKPj4+IEBAIC0yMjYsNiArMjI3LDExIEBAIHN0cnVj dCBhbWRncHVfdm0gewo+Pj4KPj4+ICAgIAkvKiBTb21lIGJhc2ljIGluZm8gYWJvdXQgdGhlIHRh c2sgKi8KPj4+ICAgIAlzdHJ1Y3QgYW1kZ3B1X3Rhc2tfaW5mbyB0YXNrX2luZm87Cj4+PiArCj4+ PiArCS8qIFN0b3JlIHBvc2l0aW9ucyBvZiBncm91cCBvZiBCT3MgKi8KPj4+ICsJc3RydWN0IHR0 bV9scnVfYnVsa19tb3ZlIGxydV9idWxrX21vdmU7Cj4+PiArCS8qIG1hcmsgd2hldGhlciBjYW4g ZG8gdGhlIGJ1bGsgbW92ZSAqLwo+Pj4gKwlib29sCQkJYnVsa19tb3ZlYWJsZTsKPj4+ICAgIH07 Cj4+Pgo+Pj4gICAgc3RydWN0IGFtZGdwdV92bV9tYW5hZ2VyIHsKPj4+IEBAIC0zMzAsOCArMzM2 LDExIEBAIGJvb2wgYW1kZ3B1X3ZtX25lZWRfcGlwZWxpbmVfc3luYyhzdHJ1Y3QgYW1kZ3B1X3Jp bmcgKnJpbmcsCj4+PiAgICB2b2lkIGFtZGdwdV92bV9jaGVja19jb21wdXRlX2J1ZyhzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldik7Cj4+Pgo+Pj4gICAgdm9pZCBhbWRncHVfdm1fZ2V0X3Rhc2tf aW5mbyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdW5zaWduZWQgaW50IHBhc2lkLAo+Pj4g LQkJCSBzdHJ1Y3QgYW1kZ3B1X3Rhc2tfaW5mbyAqdGFza19pbmZvKTsKPj4+ICsJCQkgICAgIHN0 cnVjdCBhbWRncHVfdGFza19pbmZvICp0YXNrX2luZm8pOwo+Pgo+PiBUaGlzIGNoYW5nZSBsb29r cyBub3QgcmVsYXRlZCB0byBidWxrIG1vdmUKPj4KPgo+IFllcywgdGhhdCBpcyBjb2RlIHN0eWxl IGNsZWFuIHVwIHRvIGFsZ2luIHRoZSBmaXJzdCBtZW1iZXIgb2YgIigiLgo+Cj4gVGhhbmtzLAo+ IFJheQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4g ZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZl bAo+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1n ZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=