From mboxrd@z Thu Jan 1 00:00:00 1970 From: Huang Rui Subject: Re: [PATCH v5 4/5] drm/amdgpu: use bulk moves for efficient VM LRU handling (v5) Date: Wed, 22 Aug 2018 16:33:30 +0800 Message-ID: <20180822083329.GE28364@hr-amur2> 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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <5B7D19B8.2060307-5C7GfCeVMHo@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: "Zhang, Jerry" Cc: "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , "dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , "Koenig, Christian" List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBBdWcgMjIsIDIwMTggYXQgMDQ6MDc6MjBQTSArMDgwMCwgWmhhbmcsIEplcnJ5IHdy b3RlOgo+IE9uIDA4LzIyLzIwMTggMDM6NTIgUE0sIEh1YW5nIFJ1aSB3cm90ZToKPiA+IEkgY29u dGludWUgdG8gd29yayBmb3IgYnVsayBtb3ZpbmcgdGhhdCBiYXNlZCBvbiB0aGUgcHJvcG9zYWwg YnkgQ2hyaXN0aWFuLgo+ID4KPiA+IEJhY2tncm91bmQ6Cj4gPiBhbWRncHUgZHJpdmVyIHdpbGwg bW92ZSBhbGwgUEQvUFQgYW5kIFBlclZNIEJPcyBpbnRvIGlkbGUgbGlzdC4gVGhlbiBtb3ZlIGFs bCBvZgo+ID4gdGhlbSBvbiB0aGUgZW5kIG9mIExSVSBsaXN0IG9uZSBieSBvbmUuIFRodXMsIHRo YXQgY2F1c2Ugc28gbWFueSBCT3MgbW92ZWQgdG8KPiA+IHRoZSBlbmQgb2YgdGhlIExSVSwgYW5k IGltcGFjdCBwZXJmb3JtYW5jZSBzZXJpb3VzbHkuCj4gPgo+ID4gVGhlbiBDaHJpc3RpYW4gcHJv dmlkZWQgYSB3b3JrYXJvdW5kIHRvIG5vdCBtb3ZlIFBEL1BUIEJPcyBvbiBMUlUgd2l0aCBiZWxv dwo+ID4gcGF0Y2g6Cj4gPiBDb21taXQgMGJiZjMyMDI2Y2Y1YmE0MWU5OTIyYjMwZTI2ZTFiZWQx ZWNkMzhhZSAoImRybS9hbWRncHU6IGJhbmQgYWlkCj4gPiB2YWxpZGF0aW5nIFZNIFBUcyIpCj4g Pgo+ID4gSG93ZXZlciwgdGhlIGZpbmFsIHNvbHV0aW9uIHNob3VsZCBidWxrIG1vdmUgYWxsIFBE L1BUIGFuZCBQZXJWTSBCT3Mgb24gdGhlIExSVQo+ID4gaW5zdGVhZCBvZiBvbmUgYnkgb25lLgo+ ID4KPiA+IFdoZW5ldmVyIGFtZGdwdV92bV92YWxpZGF0ZV9wdF9ib3MoKSBpcyBjYWxsZWQgYW5k IHdlIGhhdmUgQk9zIHdoaWNoIG5lZWQgdG8gYmUKPiA+IHZhbGlkYXRlZCB3ZSBtb3ZlIGFsbCBC T3MgdG9nZXRoZXIgdG8gdGhlIGVuZCBvZiB0aGUgTFJVIHdpdGhvdXQgZHJvcHBpbmcgdGhlCj4g PiBsb2NrIGZvciB0aGUgTFJVLgo+ID4KPiA+IFdoaWxlIGRvaW5nIHNvIHdlIG5vdGUgdGhlIGJl Z2lubmluZyBhbmQgZW5kIG9mIHRoaXMgYmxvY2sgaW4gdGhlIExSVSBsaXN0Lgo+ID4KPiA+IE5v dyB3aGVuIGFtZGdwdV92bV92YWxpZGF0ZV9wdF9ib3MoKSBpcyBjYWxsZWQgYW5kIHdlIGRvbid0 IGhhdmUgYW55dGhpbmcgdG8gZG8sCj4gPiB3ZSBkb24ndCBtb3ZlIGV2ZXJ5IEJPIG9uZSBieSBv bmUsIGJ1dCBpbnN0ZWFkIGN1dCB0aGUgTFJVIGxpc3QgaW50byBwaWVjZXMgc28KPiA+IHRoYXQg d2UgYnVsayBtb3ZlIGV2ZXJ5dGhpbmcgdG8gdGhlIGVuZCBpbiBqdXN0IG9uZSBvcGVyYXRpb24u Cj4gPgo+ID4gVGVzdCBkYXRhOgo+ID4gKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKPiA+ IHwgICAgICAgICAgICAgIHxUaGUgVGFsb3MgICAgICAgIHxDbHBlYWsoT0NMKXxCdXNTcGVlZFJl YWRiYWNrKE9DTCkgICAgICAgICAgICAgICAgICB8Cj4gPiB8ICAgICAgICAgICAgICB8UHJpbmNp cGxlKFZ1bGthbil8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfAo+ID4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKPiA+IHwgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgIHwgICAgICAgICAgIHwwLjMxOSBtcygxaykgMC4zMTQgbXMo MkspIDAuMzA4IG1zKDRLKSB8Cj4gPiB8IE9yaWdpbmFsICAgICB8ICAxNDcuNyBGUFMgICAgICB8 ICA3Ni44NiB1cyB8MC4zMDcgbXMoOEspIDAuMzEwIG1zKDE2SykgICAgICAgICAgICAgfAo+ID4g Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKPiA+IHwgT3JpZ25pYWwgKyBXQXwgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgIHwwLjI1NCBtcygxSykgMC4yNDEgbXMoMkspICAgICAgICAg ICAgICB8Cj4gPiB8KGRvbid0IG1vdmUgICB8ICAxNjIuMSBGUFMgICAgICB8ICA0Mi4xNSB1cyB8 MC4yMzAgbXMoNEspIDAuMjIzIG1zKDhLKSAwLjIwNCBtcygxNkspfAo+ID4gfFBUIEJPcyBvbiBM UlUpfCAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwKPiA+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gPiB8 IEJ1bGsgbW92ZSAgICB8ICAxNjMuMSBGUFMgICAgICB8ICA0MC41MiB1cyB8MC4yNDQgbXMoMUsp IDAuMjUyIG1zKDJLKSAwLjIxMyBtcyg0SykgfAo+ID4gfCAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgfDAuMjE0IG1zKDhLKSAwLjIyNSBtcygxNkspICAgICAgICAg ICAgIHwKPiA+ICstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gPgo+ID4gQWZ0ZXIgdGVz dCB0aGVtIHdpdGggYWJvdmUgdGhyZWUgYmVuY2htYXJrcyBpbmNsdWRlIHZ1bGthbiBhbmQgb3Bl bmNsLiBXZSBjYW4KPiA+IHNlZSB0aGUgdmlzaWJsZSBpbXByb3ZlbWVudCB0aGFuIG9yaWdpbmFs LCBhbmQgZXZlbiBiZXR0ZXIgdGhhbiBvcmlnaW5hbCB3aXRoCj4gPiB3b3JrYXJvdW5kLgo+ID4K PiA+IHYyOiBtb3ZlIGFsbCBCT3MgaW5jbHVkZSBpZGxlLCByZWxvY2F0ZWQsIGFuZCBtb3ZlZCBs aXN0IHRvIHRoZSBlbmQgb2YgTFJVIGFuZAo+ID4gcHV0IHRoZW0gdG9nZXRoZXIuCj4gPiB2Mzog cmVtb3ZlIHVudXNlZCBwYXJhbWV0ZXIgYW5kIHVzZSBsaXN0X2Zvcl9lYWNoX2VudHJ5IGluc3Rl YWQgb2YgdGhlIG9uZSB3aXRoCj4gPiBzYXZlIGVudHJ5Lgo+ID4gdjQ6IG1vdmUgdGhlIGFtZGdw dV92bV9tb3ZlX3RvX2xydV90YWlsIGFmdGVyIGNvbW1hbmQgc3VibWlzc2lvbiwgYXQgdGhhdCB0 aW1lLAo+ID4gYWxsIGJvIHdpbGwgYmUgYmFjayBvbiBpZGxlIGxpc3QuCj4gPiB2NTogcmVtb3Zl IGFtZGdwdV92bV9tb3ZlX3RvX2xydV90YWlsX2J5X2xpc3QoKSwgdXNlIGJ1bGtfbW92ZWFibGUg aW5zdHJlYWQgb2YKPiA+IHZhbGlkYXRlZCwgYW5kIG1vdmUgdHRtX2JvX2J1bGtfbW92ZV9scnVf dGFpbCgpIGFsc28gaW50bwo+ID4gYW1kZ3B1X3ZtX21vdmVfdG9fbHJ1X3RhaWwoKS4KPiA+Cj4g PiBTaWduZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5j b20+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBIdWFuZyBSdWkgPHJheS5odWFuZ0BhbWQuY29tPgo+ID4g VGVzdGVkLWJ5OiBNaWtlIExvdGhpYW4gPG1pa2VAZmlyZWJ1cm4uY28udWs+Cj4gPiBUZXN0ZWQt Ynk6IERpZXRlciBOw7x0emVsIDxEaWV0ZXJAbnVldHplbC1oaC5kZT4KPiA+IEFja2VkLWJ5OiBD aHVubWluZyBaaG91IDxkYXZpZDEuemhvdUBhbWQuY29tPgo+ID4gLS0tCj4gPiAgIGRyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jIHwgMTAgKysrKysrCj4gPiAgIGRyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jIHwgNjYgKysrKysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0u aCB8IDExICsrKysrLQo+ID4gICAzIGZpbGVzIGNoYW5nZWQsIDY1IGluc2VydGlvbnMoKyksIDIy IGRlbGV0aW9ucygtKQo+ID4KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5j Cj4gPiBpbmRleCA1MDJiOTRmLi40ZWZkYmQyIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9jcy5jCj4gPiBAQCAtMTI2MCw2ICsxMjYwLDE1IEBAIHN0YXRpYyBpbnQg YW1kZ3B1X2NzX3N1Ym1pdChzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcCwKPiA+ICAgCXJldHVy biAwOwo+ID4gICB9Cj4gPgo+ID4gK3N0YXRpYyB2b2lkIGFtZGdwdV9jc192bV9tb3ZlX29uX2xy dShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPiA+ICsJCQkJICAgICBzdHJ1Y3QgYW1kZ3B1 X2NzX3BhcnNlciAqcCkKPiA+ICt7Cj4gPiArCXN0cnVjdCBhbWRncHVfZnByaXYgKmZwcml2ID0g cC0+ZmlscC0+ZHJpdmVyX3ByaXY7Cj4gPiArCXN0cnVjdCBhbWRncHVfdm0gKnZtID0gJmZwcml2 LT52bTsKPiA+ICsKPiA+ICsJYW1kZ3B1X3ZtX21vdmVfdG9fbHJ1X3RhaWwoYWRldiwgdm0pOwo+ ID4gK30KPiA+ICsKPiA+ICAgaW50IGFtZGdwdV9jc19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHApCj4gPiAgIHsKPiA+ICAgCXN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiA+IEBAIC0xMzEw LDYgKzEzMTksNyBAQCBpbnQgYW1kZ3B1X2NzX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlscCkKPiA+Cj4gPiAgIAlyID0gYW1kZ3B1 X2NzX3N1Ym1pdCgmcGFyc2VyLCBjcyk7Cj4gPgo+ID4gKwlhbWRncHVfY3Nfdm1fbW92ZV9vbl9s cnUoYWRldiwgJnBhcnNlcik7Cj4gCj4gTG9va3Mgd2UgY2FuIGNhbGwgYW1kZ3B1X3ZtX21vdmVf dG9fbHJ1X3RhaWwoKSBkaXJlY3RseS4KCkJvdGggb2ssIGhlcmUsIEkganVzdCAKCj4gCj4gPiAg IG91dDoKPiA+ICAgCWFtZGdwdV9jc19wYXJzZXJfZmluaSgmcGFyc2VyLCByLCByZXNlcnZlZF9i dWZmZXJzKTsKPiA+ICAgCXJldHVybiByOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X3ZtLmMKPiA+IGluZGV4IDljODQ3NzAuLmRiMWYyOGEgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwo+ID4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKPiA+IEBAIC0yNjgsNiArMjY4LDQ3IEBAIHZvaWQg YW1kZ3B1X3ZtX2dldF9wZF9ibyhzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwKPiA+ICAgfQo+ID4KPiA+ ICAgLyoqCj4gPiArICogYW1kZ3B1X3ZtX21vdmVfdG9fbHJ1X3RhaWwgLSBtb3ZlIGFsbCBCT3Mg dG8gdGhlIGVuZCBvZiBMUlUKPiA+ICsgKgo+ID4gKyAqIEBhZGV2OiBhbWRncHUgZGV2aWNlIHBv aW50ZXIKPiA+ICsgKiBAdm06IHZtIHByb3ZpZGluZyB0aGUgQk9zCj4gPiArICoKPiA+ICsgKiBN b3ZlIGFsbCBCT3MgdG8gdGhlIGVuZCBvZiBMUlUgYW5kIHJlbWVtYmVyIHRoZWlyIHBvc2l0aW9u cyB0byBwdXQgdGhlbQo+ID4gKyAqIHRvZ2V0aGVyLgo+ID4gKyAqLwo+ID4gK3ZvaWQgYW1kZ3B1 X3ZtX21vdmVfdG9fbHJ1X3RhaWwoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4gPiArCQkJ CXN0cnVjdCBhbWRncHVfdm0gKnZtKQo+ID4gK3sKPiA+ICsJc3RydWN0IHR0bV9ib19nbG9iYWwg Kmdsb2IgPSBhZGV2LT5tbWFuLmJkZXYuZ2xvYjsKPiA+ICsJc3RydWN0IGFtZGdwdV92bV9ib19i YXNlICpib19iYXNlOwo+ID4gKwo+ID4gKwlpZiAodm0tPmJ1bGtfbW92ZWFibGUpIHsKPiA+ICsJ CXNwaW5fbG9jaygmZ2xvYi0+bHJ1X2xvY2spOwo+ID4gKwkJdHRtX2JvX2J1bGtfbW92ZV9scnVf dGFpbCgmdm0tPmxydV9idWxrX21vdmUpOwo+ID4gKwkJc3Bpbl91bmxvY2soJmdsb2ItPmxydV9s b2NrKTsKPiA+ICsJCXJldHVybjsKPiA+ICsJfQo+IAo+IFF1ZXN0aW9uOgo+IFdoeSB3ZSBoYW5k bGUgYnVsayBtb3ZlIGluIG5leHQgY29tbWFuZCBzdWJtaXNzaW9uIGluc3RlYWQgb2YgY3VycmVu dCBjcyBwcm9jZXNzPwoKQnVsayBtb3ZlIGlzIHRvIG1vdmUgYWxsIHB0IGFuZCBwZXItdm0gYm9z IHRvIHRoZSBlbmQgb2YgbHJ1LCBhZnRlciB0aGUgY3MKaXMgZG9uZSwgYWxsIHRoZSBib3Mgd2ls bCBtb3ZlIGludG8gdGhlIGlkbGUgbGlzdCBhZ2FpbiBmcm9tIG1vdmVkIGFuZApyZWxvY2F0ZWQg bGlzdC4gT25seSBibyBmcm9tIGV2aWN0ZWQgaXMgdmFsaWRhdGVkLCB3ZSB3aWxsIHJlbWVtYmVy IGFuZApzdG9yZSB0aGUgYm8gcG9zaXRpb25zLgoKPiAKPiA+ICsKPiA+ICsJbWVtc2V0KCZ2bS0+ bHJ1X2J1bGtfbW92ZSwgMCwgc2l6ZW9mKHZtLT5scnVfYnVsa19tb3ZlKSk7Cj4gPiArCj4gPiAr CXNwaW5fbG9jaygmZ2xvYi0+bHJ1X2xvY2spOwo+ID4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGJv X2Jhc2UsICZ2bS0+aWRsZSwgdm1fc3RhdHVzKSB7Cj4gPiArCQlzdHJ1Y3QgYW1kZ3B1X2JvICpi byA9IGJvX2Jhc2UtPmJvOwo+ID4gKwo+ID4gKwkJaWYgKCFiby0+cGFyZW50KQo+ID4gKwkJCWNv bnRpbnVlOwo+ID4gKwo+ID4gKwkJdHRtX2JvX21vdmVfdG9fbHJ1X3RhaWwoJmJvLT50Ym8sICZ2 bS0+bHJ1X2J1bGtfbW92ZSk7Cj4gPiArCQlpZiAoYm8tPnNoYWRvdykKPiA+ICsJCQl0dG1fYm9f bW92ZV90b19scnVfdGFpbCgmYm8tPnNoYWRvdy0+dGJvLAo+ID4gKwkJCQkJCSZ2bS0+bHJ1X2J1 bGtfbW92ZSk7Cj4gPiArCX0KPiA+ICsJc3Bpbl91bmxvY2soJmdsb2ItPmxydV9sb2NrKTsKPiA+ ICsKPiA+ICsJdm0tPmJ1bGtfbW92ZWFibGUgPSB0cnVlOwo+ID4gK30KPiA+ICsKPiA+ICsvKioK PiA+ICAgICogYW1kZ3B1X3ZtX3ZhbGlkYXRlX3B0X2JvcyAtIHZhbGlkYXRlIHRoZSBwYWdlIHRh YmxlIEJPcwo+ID4gICAgKgo+ID4gICAgKiBAYWRldjogYW1kZ3B1IGRldmljZSBwb2ludGVyCj4g PiBAQCAtMjg0LDEwICszMjUsMTEgQEAgaW50IGFtZGdwdV92bV92YWxpZGF0ZV9wdF9ib3Moc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfdm0gKnZtLAo+ID4gICAJCQkg ICAgICBpbnQgKCp2YWxpZGF0ZSkodm9pZCAqcCwgc3RydWN0IGFtZGdwdV9ibyAqYm8pLAo+ID4g ICAJCQkgICAgICB2b2lkICpwYXJhbSkKPiA+ICAgewo+ID4gLQlzdHJ1Y3QgdHRtX2JvX2dsb2Jh bCAqZ2xvYiA9IGFkZXYtPm1tYW4uYmRldi5nbG9iOwo+ID4gICAJc3RydWN0IGFtZGdwdV92bV9i b19iYXNlICpib19iYXNlLCAqdG1wOwo+ID4gICAJaW50IHIgPSAwOwo+ID4KPiA+ICsJdm0tPmJ1 bGtfbW92ZWFibGUgJj0gbGlzdF9lbXB0eSgmdm0tPmV2aWN0ZWQpOwo+ID4gKwo+ID4gICAJbGlz dF9mb3JfZWFjaF9lbnRyeV9zYWZlKGJvX2Jhc2UsIHRtcCwgJnZtLT5ldmljdGVkLCB2bV9zdGF0 dXMpIHsKPiA+ICAgCQlzdHJ1Y3QgYW1kZ3B1X2JvICpibyA9IGJvX2Jhc2UtPmJvOwo+ID4KPiA+ IEBAIC0yOTUsMTIgKzMzNyw2IEBAIGludCBhbWRncHVfdm1fdmFsaWRhdGVfcHRfYm9zKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwKPiA+ICAgCQkJciA9 IHZhbGlkYXRlKHBhcmFtLCBibyk7Cj4gPiAgIAkJCWlmIChyKQo+ID4gICAJCQkJYnJlYWs7Cj4g PiAtCj4gPiAtCQkJc3Bpbl9sb2NrKCZnbG9iLT5scnVfbG9jayk7Cj4gPiAtCQkJdHRtX2JvX21v dmVfdG9fbHJ1X3RhaWwoJmJvLT50Ym8sIE5VTEwpOwo+ID4gLQkJCWlmIChiby0+c2hhZG93KQo+ ID4gLQkJCQl0dG1fYm9fbW92ZV90b19scnVfdGFpbCgmYm8tPnNoYWRvdy0+dGJvLCBOVUxMKTsK PiA+IC0JCQlzcGluX3VubG9jaygmZ2xvYi0+bHJ1X2xvY2spOwo+ID4gICAJCX0KPiA+Cj4gPiAg IAkJaWYgKGJvLT50Ym8udHlwZSAhPSB0dG1fYm9fdHlwZV9rZXJuZWwpIHsKPiA+IEBAIC0zMTIs MjAgKzM0OCw3IEBAIGludCBhbWRncHVfdm1fdmFsaWRhdGVfcHRfYm9zKHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwKPiA+ICAgCQl9Cj4gPiAgIAl9Cj4g Pgo+ID4gLQlzcGluX2xvY2soJmdsb2ItPmxydV9sb2NrKTsKPiA+IC0JbGlzdF9mb3JfZWFjaF9l bnRyeShib19iYXNlLCAmdm0tPmlkbGUsIHZtX3N0YXR1cykgewo+ID4gLQkJc3RydWN0IGFtZGdw dV9ibyAqYm8gPSBib19iYXNlLT5ibzsKPiA+IC0KPiA+IC0JCWlmICghYm8tPnBhcmVudCkKPiA+ IC0JCQljb250aW51ZTsKPiA+IC0KPiA+IC0JCXR0bV9ib19tb3ZlX3RvX2xydV90YWlsKCZiby0+ dGJvLCBOVUxMKTsKPiA+IC0JCWlmIChiby0+c2hhZG93KQo+ID4gLQkJCXR0bV9ib19tb3ZlX3Rv X2xydV90YWlsKCZiby0+c2hhZG93LT50Ym8sIE5VTEwpOwo+ID4gLQl9Cj4gPiAtCXNwaW5fdW5s b2NrKCZnbG9iLT5scnVfbG9jayk7Cj4gPiAtCj4gPiAtCXJldHVybiByOwo+ID4gKwlyZXR1cm4g MDsKPiAKPiBXaWxsIGl0IGJyZWFrIGZyb20gdmFsaWRhdGUoKSBhbmQgcmV0dXJuIHI/CgpOaWNl IGZvdW5kaW5nLCB0aGlzIGlzIG15IHR5cG8sIHRoYXQgSSBkb24ndCBtb2RpZnkgaXQgYmFjay4K Cj4gCj4gPiAgIH0KPiA+Cj4gPiAgIC8qKgo+ID4gQEAgLTI1OTYsNiArMjYxOSw3IEBAIGludCBh bWRncHVfdm1faW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV92 bSAqdm0sCj4gPiAgIAkJcmV0dXJuIHI7Cj4gPgo+ID4gICAJdm0tPnB0ZV9zdXBwb3J0X2F0cyA9 IGZhbHNlOwo+ID4gKwl2bS0+YnVsa19tb3ZlYWJsZSA9IHRydWU7Cj4gPgo+ID4gICAJaWYgKHZt X2NvbnRleHQgPT0gQU1ER1BVX1ZNX0NPTlRFWFRfQ09NUFVURSkgewo+ID4gICAJCXZtLT51c2Vf Y3B1X2Zvcl91cGRhdGUgPSAhIShhZGV2LT52bV9tYW5hZ2VyLnZtX3VwZGF0ZV9tb2RlICYKPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uaCBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5oCj4gPiBpbmRleCA2N2ExNWQ0Li5i YmRkZTQwIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X3ZtLmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5oCj4g PiBAQCAtMjksNiArMjksNyBAQAo+ID4gICAjaW5jbHVkZSA8bGludXgvcmJ0cmVlLmg+Cj4gPiAg ICNpbmNsdWRlIDxkcm0vZ3B1X3NjaGVkdWxlci5oPgo+ID4gICAjaW5jbHVkZSA8ZHJtL2RybV9m aWxlLmg+Cj4gPiArI2luY2x1ZGUgPGRybS90dG0vdHRtX2JvX2RyaXZlci5oPgo+ID4KPiA+ICAg I2luY2x1ZGUgImFtZGdwdV9zeW5jLmgiCj4gPiAgICNpbmNsdWRlICJhbWRncHVfcmluZy5oIgo+ ID4gQEAgLTIyNiw2ICsyMjcsMTEgQEAgc3RydWN0IGFtZGdwdV92bSB7Cj4gPgo+ID4gICAJLyog U29tZSBiYXNpYyBpbmZvIGFib3V0IHRoZSB0YXNrICovCj4gPiAgIAlzdHJ1Y3QgYW1kZ3B1X3Rh c2tfaW5mbyB0YXNrX2luZm87Cj4gPiArCj4gPiArCS8qIFN0b3JlIHBvc2l0aW9ucyBvZiBncm91 cCBvZiBCT3MgKi8KPiA+ICsJc3RydWN0IHR0bV9scnVfYnVsa19tb3ZlIGxydV9idWxrX21vdmU7 Cj4gPiArCS8qIG1hcmsgd2hldGhlciBjYW4gZG8gdGhlIGJ1bGsgbW92ZSAqLwo+ID4gKwlib29s CQkJYnVsa19tb3ZlYWJsZTsKPiA+ICAgfTsKPiA+Cj4gPiAgIHN0cnVjdCBhbWRncHVfdm1fbWFu YWdlciB7Cj4gPiBAQCAtMzMwLDggKzMzNiwxMSBAQCBib29sIGFtZGdwdV92bV9uZWVkX3BpcGVs aW5lX3N5bmMoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAo+ID4gICB2b2lkIGFtZGdwdV92bV9j aGVja19jb21wdXRlX2J1ZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7Cj4gPgo+ID4gICB2 b2lkIGFtZGdwdV92bV9nZXRfdGFza19pbmZvKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1 bnNpZ25lZCBpbnQgcGFzaWQsCj4gPiAtCQkJIHN0cnVjdCBhbWRncHVfdGFza19pbmZvICp0YXNr X2luZm8pOwo+ID4gKwkJCSAgICAgc3RydWN0IGFtZGdwdV90YXNrX2luZm8gKnRhc2tfaW5mbyk7 Cj4gCj4gVGhpcyBjaGFuZ2UgbG9va3Mgbm90IHJlbGF0ZWQgdG8gYnVsayBtb3ZlCj4gCgpZZXMs IHRoYXQgaXMgY29kZSBzdHlsZSBjbGVhbiB1cCB0byBhbGdpbiB0aGUgZmlyc3QgbWVtYmVyIG9m ICIoIi4KClRoYW5rcywKUmF5Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdm eAo=